[FFmpeg-cvslog] avformat/hls, dashdec: Don't use AV_OPT flags in av_dict_set()

Andreas Rheinhardt git at videolan.org
Mon May 16 11:57:34 EEST 2022

ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Sun May 15 19:32:44 2022 +0200| [e3580f60775c897c3b13b178c57ab191ecc4a031] | committer: Andreas Rheinhardt

avformat/hls, dashdec: Don't use AV_OPT flags in av_dict_set()

av_dict_set() expects a different set of flags, namely the AV_DICT_*
flags. Using AV_OPT_FLAG_DECODING_PARAM (or any AV_OPT_FLAG_*) ic
av_dict_set() is therefore completely wrong and given that av_dict_set()
just doesn't care about whether the string it receives has anything
to do with a decoding parameter or not, it should just be removed
without replacement.
(The numerical value of AV_OPT_FLAG_DECODING_PARAM currently coincides
with AV_DICT_IGNORE_SUFFIX. Given that the dictionaries we are dealing
with here are always empty (i.e. NULL) before the calls to
av_dict_set(), this flag changes nothing. It would be different if
it were equal to one of the AV_DICT_DONT_STRDUP_* values.)

Reviewed-by: Jan Ekström <jeebjp at gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e3580f60775c897c3b13b178c57ab191ecc4a031

 libavformat/dashdec.c | 2 +-
 libavformat/hls.c     | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c
index 0f66251354..63bf7e96a5 100644
--- a/libavformat/dashdec.c
+++ b/libavformat/dashdec.c
@@ -1895,7 +1895,7 @@ static int reopen_demux_for_component(AVFormatContext *s, struct representation
     pls->ctx->io_open  = nested_io_open;
     if (c->cenc_decryption_key)
-        av_dict_set(&in_fmt_opts, "decryption_key", c->cenc_decryption_key, AV_OPT_FLAG_DECODING_PARAM);
+        av_dict_set(&in_fmt_opts, "decryption_key", c->cenc_decryption_key, 0);
     // provide additional information from mpd if available
     ret = avformat_open_input(&pls->ctx, "", in_fmt, &in_fmt_opts); //pls->init_section->url
diff --git a/libavformat/hls.c b/libavformat/hls.c
index 38eb346405..8204f55df3 100644
--- a/libavformat/hls.c
+++ b/libavformat/hls.c
@@ -2065,7 +2065,7 @@ static int hls_read_header(AVFormatContext *s)
             if (strstr(in_fmt->name, "mov")) {
                 char key[33];
                 ff_data_to_hex(key, pls->key, sizeof(pls->key), 0);
-                av_dict_set(&options, "decryption_key", key, AV_OPT_FLAG_DECODING_PARAM);
+                av_dict_set(&options, "decryption_key", key, 0);
             } else if (!c->crypto_ctx.aes_ctx) {
                 c->crypto_ctx.aes_ctx = av_aes_alloc();
                 if (!c->crypto_ctx.aes_ctx) {

More information about the ffmpeg-cvslog mailing list