avutil: use av_dict_iterate

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
pull/388/head
Marvin Scholz 2 years ago committed by Andreas Rheinhardt
parent cb9ab38c52
commit 81747b5259
  1. 12
      libavutil/opt.c
  2. 2
      libavutil/tests/dict.c

@ -1742,14 +1742,14 @@ void av_opt_free(void *obj)
int av_opt_set_dict2(void *obj, AVDictionary **options, int search_flags)
{
AVDictionaryEntry *t = NULL;
const AVDictionaryEntry *t = NULL;
AVDictionary *tmp = NULL;
int ret;
if (!options)
return 0;
while ((t = av_dict_get(*options, "", t, AV_DICT_IGNORE_SUFFIX))) {
while ((t = av_dict_iterate(*options, t))) {
ret = av_opt_set(obj, t->key, t->value, search_flags);
if (ret == AVERROR_OPTION_NOT_FOUND)
ret = av_dict_set(&tmp, t->key, t->value, 0);
@ -2137,16 +2137,16 @@ FF_ENABLE_DEPRECATION_WARNINGS
case AV_OPT_TYPE_DICT: {
AVDictionary *dict1 = NULL;
AVDictionary *dict2 = *(AVDictionary **)dst;
AVDictionaryEntry *en1 = NULL;
AVDictionaryEntry *en2 = NULL;
const AVDictionaryEntry *en1 = NULL;
const AVDictionaryEntry *en2 = NULL;
ret = av_dict_parse_string(&dict1, o->default_val.str, "=", ":", 0);
if (ret < 0) {
av_dict_free(&dict1);
return ret;
}
do {
en1 = av_dict_get(dict1, "", en1, AV_DICT_IGNORE_SUFFIX);
en2 = av_dict_get(dict2, "", en2, AV_DICT_IGNORE_SUFFIX);
en1 = av_dict_iterate(dict1, en1);
en2 = av_dict_iterate(dict2, en2);
} while (en1 && en2 && !strcmp(en1->key, en2->key) && !strcmp(en1->value, en2->value));
av_dict_free(&dict1);
return (!en1 && !en2);

@ -52,7 +52,7 @@ static void test_separators(const AVDictionary *m, const char pair, const char v
int main(void)
{
AVDictionary *dict = NULL;
AVDictionaryEntry *e;
const AVDictionaryEntry *e;
char *buffer = NULL;
printf("Testing av_dict_get_string() and av_dict_parse_string()\n");

Loading…
Cancel
Save