[FFmpeg-devel] [PATCH] avcodec/h264_slice: use the new SAR early when setting the decoder

Hendrik Leppkes h.leppkes at gmail.com
Tue Apr 24 09:28:35 EEST 2018


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?

- Hendrik


More information about the ffmpeg-devel mailing list