[FFmpeg-devel] [PATCH] avcodec/utils: use a minimum 32pixel width in avcodec_align_dimensions2() for H.264

Ronald S. Bultje rsbultje at gmail.com
Fri Jul 10 16:51:45 CEST 2015


Hi,

On Thu, Jul 9, 2015 at 8:11 PM, Michael Niedermayer <michaelni at gmx.at>
wrote:

> Fixes Assertion failure
> Found-by: Andreas Cadhalpun <andreas.cadhalpun at googlemail.com>
> Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> ---
>  libavcodec/utils.c |    4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/libavcodec/utils.c b/libavcodec/utils.c
> index 96f177d..925b3ed 100644
> --- a/libavcodec/utils.c
> +++ b/libavcodec/utils.c
> @@ -428,10 +428,12 @@ void avcodec_align_dimensions2(AVCodecContext *s,
> int *width, int *height,
>
>      *width  = FFALIGN(*width, w_align);
>      *height = FFALIGN(*height, h_align);
> -    if (s->codec_id == AV_CODEC_ID_H264 || s->lowres)
> +    if (s->codec_id == AV_CODEC_ID_H264 || s->lowres) {
>          // some of the optimized chroma MC reads one line too much
>          // which is also done in mpeg decoders with lowres > 0
>          *height += 2;
> +        *width = FFMAX(*width, 32);
> +    }


Would you mind adding a comment why? This codec-specific hackery tends to
raise lots of eyebrows a few years after, so knowing what exactly it fixes
is very useful.

(E.g. what assertion, caused by what file with what special feature that
technically cause the assert, etc.)

Thanks,
Ronald


More information about the ffmpeg-devel mailing list