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@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
release/5.1
Andreas Rheinhardt 3 years ago
parent 00ae20dfb4
commit e3580f6077
  1. 2
      libavformat/dashdec.c
  2. 2
      libavformat/hls.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

@ -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) {

Loading…
Cancel
Save