diff options
author | Clément Bœsch <ubitux@gmail.com> | 2013-04-11 14:58:29 +0200 |
---|---|---|
committer | Clément Bœsch <ubitux@gmail.com> | 2013-04-11 15:09:25 +0200 |
commit | 7fdebb116c9896b98463fc247a96aa64936b4043 (patch) | |
tree | 3ce54b6f21c26dd814031e5a68a64ce93af3644a /libavfilter/af_astreamsync.c | |
parent | 2fb8ca7d2c272d4246a87736030861a13064bb0d (diff) |
lavfi/astreamsync: switch to an AVOptions-based system.
Diffstat (limited to 'libavfilter/af_astreamsync.c')
-rw-r--r-- | libavfilter/af_astreamsync.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/libavfilter/af_astreamsync.c b/libavfilter/af_astreamsync.c index 76a152c87a..47e66bcc03 100644 --- a/libavfilter/af_astreamsync.c +++ b/libavfilter/af_astreamsync.c @@ -24,6 +24,7 @@ */ #include "libavutil/eval.h" +#include "libavutil/opt.h" #include "avfilter.h" #include "audio.h" #include "internal.h" @@ -45,7 +46,9 @@ enum var_name { }; typedef struct { + const AVClass *class; AVExpr *expr; + char *expr_str; double var_values[VAR_NB]; struct buf_queue { AVFrame *buf[QUEUE_SIZE]; @@ -58,18 +61,25 @@ typedef struct { int eof; /* bitmask, one bit for each stream */ } AStreamSyncContext; -static const char *default_expr = "t1-t2"; +#define OFFSET(x) offsetof(AStreamSyncContext, x) +#define FLAGS AV_OPT_FLAG_AUDIO_PARAM|AV_OPT_FLAG_FILTERING_PARAM +static const AVOption astreamsync_options[] = { + { "expr", "set stream selection expression", OFFSET(expr_str), AV_OPT_TYPE_STRING, { .str = "t1-t2" }, .flags = FLAGS }, + { "e", "set stream selection expression", OFFSET(expr_str), AV_OPT_TYPE_STRING, { .str = "t1-t2" }, .flags = FLAGS }, + { NULL } +}; + +AVFILTER_DEFINE_CLASS(astreamsync); static av_cold int init(AVFilterContext *ctx, const char *args0) { AStreamSyncContext *as = ctx->priv; - const char *expr = args0 ? args0 : default_expr; int r, i; - r = av_expr_parse(&as->expr, expr, var_names, + r = av_expr_parse(&as->expr, as->expr_str, var_names, NULL, NULL, NULL, NULL, 0, ctx); if (r < 0) { - av_log(ctx, AV_LOG_ERROR, "Error in expression \"%s\"\n", expr); + av_log(ctx, AV_LOG_ERROR, "Error in expression \"%s\"\n", as->expr_str); return r; } for (i = 0; i < 42; i++) @@ -226,4 +236,5 @@ AVFilter avfilter_af_astreamsync = { .query_formats = query_formats, .inputs = astreamsync_inputs, .outputs = astreamsync_outputs, + .priv_class = &astreamsync_class, }; |