Merge commit '1ba95a9cca57b023b9b9de071a5671fc05b05e58'

* commit '1ba95a9cca57b023b9b9de071a5671fc05b05e58':
  lavfi: add avfilter_init_dict() for initializing a filter with a dict.

Conflicts:
	libavfilter/avfilter.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer
2013-04-12 14:25:27 +02:00
3 changed files with 46 additions and 14 deletions

View File

@@ -688,6 +688,28 @@ int avfilter_init_filter(AVFilterContext *filter, const char *args, void *opaque
}
#endif
int avfilter_init_dict(AVFilterContext *ctx, AVDictionary **options)
{
int ret = 0;
if (ctx->filter->priv_class) {
ret = av_opt_set_dict(ctx->priv, options);
if (ret < 0) {
av_log(ctx, AV_LOG_ERROR, "Error applying options to the filter.\n");
return ret;
}
}
if (ctx->filter->init_opaque)
ret = ctx->filter->init_opaque(ctx, NULL);
else if (ctx->filter->init)
ret = ctx->filter->init(ctx);
else if (ctx->filter->init_dict)
ret = ctx->filter->init_dict(ctx, options);
return ret;
}
int avfilter_init_str(AVFilterContext *filter, const char *args)
{
AVDictionary *options = NULL;
@@ -794,20 +816,7 @@ int avfilter_init_str(AVFilterContext *filter, const char *args)
}
}
if (filter->filter->priv_class) {
ret = av_opt_set_dict(filter->priv, &options);
if (ret < 0) {
av_log(filter, AV_LOG_ERROR, "Error applying options to the filter.\n");
goto fail;
}
}
if (filter->filter->init_opaque)
ret = filter->filter->init_opaque(filter, NULL);
else if (filter->filter->init)
ret = filter->filter->init(filter);
else if (filter->filter->init_dict)
ret = filter->filter->init_dict(filter, &options);
ret = avfilter_init_dict(filter, &options);
if (ret < 0)
goto fail;