[FFmpeg-devel] [PATCH] avformat/utils: Combine identical statements

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Fri Apr 16 14:05:13 EEST 2021


Andreas Rheinhardt:
> This would only make a difference in case the first attempt to
> initialize the encoder failed and the second succeeded. The only
> reason I can think of for this to happen is that the options (in
> particular the codec whitelist) are not used for the second try
> and that obviously implies that we should not even try a second time
> to open the decoder.
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> ---
>  libavformat/utils.c | 12 +++---------
>  1 file changed, 3 insertions(+), 9 deletions(-)
> 
> diff --git a/libavformat/utils.c b/libavformat/utils.c
> index d9971d7fd3..d4ec3d0190 100644
> --- a/libavformat/utils.c
> +++ b/libavformat/utils.c
> @@ -3747,16 +3747,10 @@ FF_ENABLE_DEPRECATION_WARNINGS
>          if (ic->codec_whitelist)
>              av_dict_set(options ? &options[i] : &thread_opt, "codec_whitelist", ic->codec_whitelist, 0);
>  
> -        /* Ensure that subtitle_header is properly set. */
> -        if (st->codecpar->codec_type == AVMEDIA_TYPE_SUBTITLE
> -            && codec && !avctx->codec) {
> -            if (avcodec_open2(avctx, codec, options ? &options[i] : &thread_opt) < 0)
> -                av_log(ic, AV_LOG_WARNING,
> -                       "Failed to open codec in %s\n",__FUNCTION__);
> -        }
> -
>          // Try to just open decoders, in case this is enough to get parameters.
> -        if (!has_codec_parameters(st, NULL) && st->internal->request_probe <= 0) {
> +        // Also ensure that subtitle_header is properly set.
> +        if (!has_codec_parameters(st, NULL) && st->internal->request_probe <= 0 ||
> +            st->codecpar->codec_type == AVMEDIA_TYPE_SUBTITLE) {
>              if (codec && !avctx->codec)
>                  if (avcodec_open2(avctx, codec, options ? &options[i] : &thread_opt) < 0)
>                      av_log(ic, AV_LOG_WARNING,
> 
Will apply tomorrow unless there are objections.

- Andreas


More information about the ffmpeg-devel mailing list