[FFmpeg-devel] [PATCH 1/2] avcodec/decode: Workaround for media100 decoding failure issue

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Wed Jun 11 08:55:15 EEST 2025


Zhao Zhili:
> From: Zhao Zhili <zhilizhao at tencent.com>
> 
> This is a regression since 1c170613.
> ---
>  libavcodec/decode.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/libavcodec/decode.c b/libavcodec/decode.c
> index ef09568381..7e47a2971c 100644
> --- a/libavcodec/decode.c
> +++ b/libavcodec/decode.c
> @@ -204,9 +204,14 @@ static int decode_bsfs_init(AVCodecContext *avctx)
>      ret = av_bsf_init(avci->bsf);
>      if (ret < 0)
>          goto fail;
> -    ret = avcodec_parameters_to_context(avctx, avci->bsf->par_out);
> -    if (ret < 0)
> -        goto fail;
> +    /* Don't copy par_out to avcodec context if bsf changed codec ID,
> +     * e.g., media100_to_mjpegb
> +     */
> +    if (avctx->codec_id == avci->bsf->par_out->codec_id) {
> +        ret = avcodec_parameters_to_context(avctx, avci->bsf->par_out);
> +        if (ret < 0)
> +            goto fail;
> +    }
>  
>      return 0;
>  fail:

We should rather use a clean revert; after all, the internal BSF is
supposed to be internal and not change the user-visible extradata etc.

- Andreas



More information about the ffmpeg-devel mailing list