summaryrefslogtreecommitdiff
path: root/libavcodec/avcodec.c
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-05-12 04:22:32 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2021-06-08 12:52:50 +0200
commit73f9d5b6735cd9f939859f6a8540daa88877ab89 (patch)
treec8e3fec6b002b71e22eeaa274256f72093bb4d8b /libavcodec/avcodec.c
parent7e03d962a43b33811f6c0f09e72926e7684e96e8 (diff)
downloadffmpeg-73f9d5b6735cd9f939859f6a8540daa88877ab89.tar.gz
avcodec/avcodec: Avoid redundant copies of options in avcodec_open2
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>
Diffstat (limited to 'libavcodec/avcodec.c')
-rw-r--r--libavcodec/avcodec.c14
1 files changed, 3 insertions, 11 deletions
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;
}