avfilter/avfilter: Use AV_DICT_DONT_STRDUP_(KEY|VAL) when possible

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt 2021-09-11 02:54:22 +02:00
parent abcb4b44f5
commit c96d0a0b85

View File

@ -844,6 +844,7 @@ int ff_filter_opt_parse(void *logctx, const AVClass *priv_class,
while (*args) { while (*args) {
const char *shorthand = NULL; const char *shorthand = NULL;
int additional_flags = 0;
if (priv_class) if (priv_class)
o = av_opt_next(&priv_class, o); o = av_opt_next(&priv_class, o);
@ -869,7 +870,7 @@ int ff_filter_opt_parse(void *logctx, const AVClass *priv_class,
args++; args++;
if (parsed_key) { if (parsed_key) {
key = parsed_key; key = parsed_key;
additional_flags = AV_DICT_DONT_STRDUP_KEY;
/* discard all remaining shorthand */ /* discard all remaining shorthand */
if (priv_class) if (priv_class)
while ((o = av_opt_next(&priv_class, o))); while ((o = av_opt_next(&priv_class, o)));
@ -879,10 +880,8 @@ int ff_filter_opt_parse(void *logctx, const AVClass *priv_class,
av_log(logctx, AV_LOG_DEBUG, "Setting '%s' to value '%s'\n", key, value); av_log(logctx, AV_LOG_DEBUG, "Setting '%s' to value '%s'\n", key, value);
av_dict_set(options, key, value, AV_DICT_MULTIKEY); av_dict_set(options, key, value,
additional_flags | AV_DICT_DONT_STRDUP_VAL | AV_DICT_MULTIKEY);
av_free(value);
av_free(parsed_key);
} }
return 0; return 0;