diff mbox series

[FFmpeg-devel,35/39] avcodec/avcodec: Avoid redundant copies of options in avcodec_open2

Message ID HE1PR0301MB215458569DF474B2C5A3FCB58F299@HE1PR0301MB2154.eurprd03.prod.outlook.com
State Accepted
Commit 73f9d5b6735cd9f939859f6a8540daa88877ab89
Headers show
Series [FFmpeg-devel,01/39] avcodec/audiotoolboxenc: Remove AV_CODEC_CAP_DR1 | expand

Checks

Context Check Description
andriy/x86_make success Make finished
andriy/x86_make_fate success Make fate finished
andriy/PPC64_make success Make finished
andriy/PPC64_make_fate success Make fate finished

Commit Message

Andreas Rheinhardt May 21, 2021, 9:17 a.m. UTC
It is no longer necessary now that ff_frame_thread_encoder_init()
no longer receives an options dictionary.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavcodec/avcodec.c | 14 +++-----------
 1 file changed, 3 insertions(+), 11 deletions(-)
diff mbox series

Patch

diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c
index 6f61ae246d..a65109e799 100644
--- a/libavcodec/avcodec.c
+++ b/libavcodec/avcodec.c
@@ -135,7 +135,6 @@  static int64_t get_bit_rate(AVCodecContext *ctx)
 int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options)
 {
     int ret = 0;
-    AVDictionary *tmp = NULL;
     AVCodecInternal *avci;
 
     if (avcodec_is_open(avctx))
@@ -168,9 +167,6 @@  int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code
     if (avctx->extradata_size < 0 || avctx->extradata_size >= FF_MAX_EXTRADATA_SIZE)
         return AVERROR(EINVAL);
 
-    if (options)
-        av_dict_copy(&tmp, *options, 0);
-
     lock_avcodec(codec);
 
     avci = av_mallocz(sizeof(*avci));
@@ -207,12 +203,12 @@  int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code
                 av_opt_set_defaults(avctx->priv_data);
             }
         }
-        if (codec->priv_class && (ret = av_opt_set_dict(avctx->priv_data, &tmp)) < 0)
+        if (codec->priv_class && (ret = av_opt_set_dict(avctx->priv_data, options)) < 0)
             goto free_and_end;
     } else {
         avctx->priv_data = NULL;
     }
-    if ((ret = av_opt_set_dict(avctx, &tmp)) < 0)
+    if ((ret = av_opt_set_dict(avctx, options)) < 0)
         goto free_and_end;
 
     if (avctx->codec_whitelist && av_match_list(codec->name, avctx->codec_whitelist, ',') <= 0) {
@@ -372,15 +368,11 @@  int attribute_align_arg avcodec_open2(AVCodecContext *avctx, const AVCodec *code
 
 end:
     unlock_avcodec(codec);
-    if (options) {
-        av_dict_free(options);
-        *options = tmp;
-    }
 
     return ret;
 free_and_end:
     avcodec_close(avctx);
-    av_dict_free(&tmp);
+    av_dict_free(options);
     goto end;
 }