int av_opt_set_dict2(void *obj, AVDictionary **options, int search_flags) { AVDictionaryEntry *t = NULL; AVDictionary *tmp = NULL; int ret = 0; if (!options) return 0; while ((t = av_dict_get(*options, "", t, AV_DICT_IGNORE_SUFFIX))) { 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); if (ret < 0) { av_log(obj, AV_LOG_ERROR, "Error setting option %s to value %s.\n", t->key, t->value); av_dict_free(&tmp); return ret; } ret = 0; } av_dict_free(options); *options = tmp; return ret; }
时间: 2024-04-05 17:31:10 浏览: 28
16x16dianzhen.rar_16*16led protu_双色 点阵_双色点阵_点阵程序
这段代码是用来设置 AVOption 的值的,它遍历了一个 AVDictionary 指针数组 options,通过调用 av_opt_set 函数来设置 AVOption 的值。如果该 AVOption 不存在,就将其添加到一个临时的 AVDictionary 指针 tmp 中。如果出现错误,则会释放 tmp 并返回错误代码。最后,释放原始的 options 并将其指向 tmp。
阅读全文