lavfi/select: use standard options parsing.

This commit is contained in:
Clément Bœsch 2013-03-24 08:45:32 +01:00
parent f7324c068f
commit 8b994c8c1c

View File

@ -149,15 +149,8 @@ static const AVOption options[] = {
static av_cold int init(AVFilterContext *ctx, const char *args, const AVClass *class)
{
SelectContext *select = ctx->priv;
const char *shorthand[] = { "expr", NULL };
int ret;
select->class = class;
av_opt_set_defaults(select);
if ((ret = av_opt_set_from_string(select, args, shorthand, "=", ":")) < 0)
return ret;
if ((ret = av_expr_parse(&select->expr, select->expr_str,
var_names, NULL, NULL, NULL, NULL, 0, ctx)) < 0) {
av_log(ctx, AV_LOG_ERROR, "Error while parsing expression '%s'\n", select->expr_str);
@ -373,7 +366,6 @@ static av_cold void uninit(AVFilterContext *ctx)
av_expr_free(select->expr);
select->expr = NULL;
av_opt_free(select);
#if CONFIG_AVCODEC
if (select->do_scene_detect) {
@ -402,6 +394,8 @@ static int query_formats(AVFilterContext *ctx)
return 0;
}
static const char *const shorthand[] = { "expr", NULL };
#if CONFIG_ASELECT_FILTER
#define aselect_options options
@ -451,6 +445,7 @@ AVFilter avfilter_af_aselect = {
.inputs = avfilter_af_aselect_inputs,
.outputs = avfilter_af_aselect_outputs,
.priv_class = &aselect_class,
.shorthand = shorthand,
};
#endif /* CONFIG_ASELECT_FILTER */
@ -507,5 +502,6 @@ AVFilter avfilter_vf_select = {
.inputs = avfilter_vf_select_inputs,
.outputs = avfilter_vf_select_outputs,
.priv_class = &select_class,
.shorthand = shorthand,
};
#endif /* CONFIG_SELECT_FILTER */