Commit 8b994c8c authored by Clément Bœsch's avatar Clément Bœsch

lavfi/select: use standard options parsing.

parent f7324c06
...@@ -149,15 +149,8 @@ static const AVOption options[] = { ...@@ -149,15 +149,8 @@ static const AVOption options[] = {
static av_cold int init(AVFilterContext *ctx, const char *args, const AVClass *class) static av_cold int init(AVFilterContext *ctx, const char *args, const AVClass *class)
{ {
SelectContext *select = ctx->priv; SelectContext *select = ctx->priv;
const char *shorthand[] = { "expr", NULL };
int ret; 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, if ((ret = av_expr_parse(&select->expr, select->expr_str,
var_names, NULL, NULL, NULL, NULL, 0, ctx)) < 0) { var_names, NULL, NULL, NULL, NULL, 0, ctx)) < 0) {
av_log(ctx, AV_LOG_ERROR, "Error while parsing expression '%s'\n", select->expr_str); 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) ...@@ -373,7 +366,6 @@ static av_cold void uninit(AVFilterContext *ctx)
av_expr_free(select->expr); av_expr_free(select->expr);
select->expr = NULL; select->expr = NULL;
av_opt_free(select);
#if CONFIG_AVCODEC #if CONFIG_AVCODEC
if (select->do_scene_detect) { if (select->do_scene_detect) {
...@@ -402,6 +394,8 @@ static int query_formats(AVFilterContext *ctx) ...@@ -402,6 +394,8 @@ static int query_formats(AVFilterContext *ctx)
return 0; return 0;
} }
static const char *const shorthand[] = { "expr", NULL };
#if CONFIG_ASELECT_FILTER #if CONFIG_ASELECT_FILTER
#define aselect_options options #define aselect_options options
...@@ -451,6 +445,7 @@ AVFilter avfilter_af_aselect = { ...@@ -451,6 +445,7 @@ AVFilter avfilter_af_aselect = {
.inputs = avfilter_af_aselect_inputs, .inputs = avfilter_af_aselect_inputs,
.outputs = avfilter_af_aselect_outputs, .outputs = avfilter_af_aselect_outputs,
.priv_class = &aselect_class, .priv_class = &aselect_class,
.shorthand = shorthand,
}; };
#endif /* CONFIG_ASELECT_FILTER */ #endif /* CONFIG_ASELECT_FILTER */
...@@ -507,5 +502,6 @@ AVFilter avfilter_vf_select = { ...@@ -507,5 +502,6 @@ AVFilter avfilter_vf_select = {
.inputs = avfilter_vf_select_inputs, .inputs = avfilter_vf_select_inputs,
.outputs = avfilter_vf_select_outputs, .outputs = avfilter_vf_select_outputs,
.priv_class = &select_class, .priv_class = &select_class,
.shorthand = shorthand,
}; };
#endif /* CONFIG_SELECT_FILTER */ #endif /* CONFIG_SELECT_FILTER */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment