diff options
author | Stefano Sabatini <stefasab@gmail.com> | 2012-09-30 15:03:08 +0400 |
---|---|---|
committer | Stefano Sabatini <stefasab@gmail.com> | 2012-10-02 11:20:10 +0400 |
commit | 630006277448bfa023a4de2c5f56cbd24f027052 (patch) | |
tree | 6a0df21f270713a6cb623611ebac4d8d7d5a7aea /libavfilter/vf_transpose.c | |
parent | c785b6db73f627f242b509f33a788dc1f328bc7b (diff) |
lavfi/transpose: add support to named options and shortands
Allow extensibility.
Diffstat (limited to 'libavfilter/vf_transpose.c')
-rw-r--r-- | libavfilter/vf_transpose.c | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/libavfilter/vf_transpose.c b/libavfilter/vf_transpose.c index 4161050c74..41ca0629aa 100644 --- a/libavfilter/vf_transpose.c +++ b/libavfilter/vf_transpose.c @@ -28,6 +28,7 @@ #include <stdio.h> #include "libavutil/intreadwrite.h" +#include "libavutil/opt.h" #include "libavutil/pixdesc.h" #include "libavutil/imgutils.h" #include "libavutil/internal.h" @@ -37,6 +38,7 @@ #include "video.h" typedef struct { + const AVClass *class; int hsub, vsub; int pixsteps[4]; @@ -48,20 +50,25 @@ typedef struct { int passthrough; ///< landscape passthrough mode enabled } TransContext; +#define OFFSET(x) offsetof(TransContext, x) +#define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM + +static const AVOption transpose_options[] = { + { "dir", "set transpose direction", OFFSET(dir), AV_OPT_TYPE_INT, {.i64=0}, 0, 7, FLAGS }, + { NULL }, +}; + +AVFILTER_DEFINE_CLASS(transpose); + static av_cold int init(AVFilterContext *ctx, const char *args) { TransContext *trans = ctx->priv; - trans->dir = 0; + const char *shorthand[] = { "dir", NULL }; - if (args) - sscanf(args, "%d", &trans->dir); + trans->class = &transpose_class; + av_opt_set_defaults(trans); - if (trans->dir < 0 || trans->dir > 7) { - av_log(ctx, AV_LOG_ERROR, "Invalid value %d not between 0 and 7.\n", - trans->dir); - return AVERROR(EINVAL); - } - return 0; + return av_opt_set_from_string(trans, args, shorthand, "=", ":"); } static int query_formats(AVFilterContext *ctx) @@ -262,4 +269,5 @@ AVFilter avfilter_vf_transpose = { .config_props = config_props_output, .type = AVMEDIA_TYPE_VIDEO, }, { .name = NULL}}, + .priv_class = &transpose_class, }; |