[FFmpeg-devel] [PATCH] avcodec/h264_slice: use the new SAR early when setting the decoder
wm4
nfxjfg at googlemail.com
Wed Apr 25 16:06:36 EEST 2018
On Wed, 25 Apr 2018 09:55:10 +0200
Steve Lhomme <robux4 at ycbcr.xyz> wrote:
> Le 24/04/2018 à 08:28, Hendrik Leppkes a écrit :
> > On Fri, Jan 19, 2018 at 1:01 PM, Steve Lhomme <robux4 at ycbcr.xyz> wrote:
> >> If we don't do that get_format might not be called for a while and the proper
> >> SAR not used.
> >>
> >> See the sample mentioned here: https://trac.videolan.org/vlc/ticket/19435
> >> ---
> >> libavcodec/h264_slice.c | 4 +++-
> >> 1 file changed, 3 insertions(+), 1 deletion(-)
> >>
> >> diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
> >> index e6b7998834..319a37f5b6 100644
> >> --- a/libavcodec/h264_slice.c
> >> +++ b/libavcodec/h264_slice.c
> >> @@ -1050,8 +1050,10 @@ static int h264_init_ps(H264Context *h, const H264SliceContext *sl, int first_sl
> >> || (non_j_pixfmt(h->avctx->pix_fmt) != non_j_pixfmt(get_pixel_format(h, 0))))
> >> must_reinit = 1;
> >>
> >> - if (first_slice && av_cmp_q(sps->sar, h->avctx->sample_aspect_ratio))
> >> + if (first_slice && av_cmp_q(sps->sar, h->avctx->sample_aspect_ratio)) {
> >> must_reinit = 1;
> >> + ff_set_sar(h->avctx, sps->sar);
> >> + }
> >>
> >> if (!h->setup_finished) {
> >> h->avctx->profile = ff_h264_get_profile(sps);
> >> --
> >> 2.14.2
> > Why do we even do a get_format call for aspect ratio changes in the
> > first place? It doesn't change the physical image properties, the
> > format of image buffers etc remains the same, hwaccel decisions remain
> > the same.. anyone know why this is?
>
> How are we supposed to know the display format has changed ? Checking
> each AVFrame sample_aspect_ratio to see if something changed ?
Yes. get_format is for allocating memory only.
More information about the ffmpeg-devel
mailing list