[FFmpeg-devel] [PATCH] avformat/hls, dashdec: Don't use AV_OPT_FLAG_* in av_dict_set()

Andreas Rheinhardt andreas.rheinhardt at outlook.com
Sun May 15 20:56:56 EEST 2022


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.)

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
---
 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) {
-- 
2.32.0



More information about the ffmpeg-devel mailing list