[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