diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-04-10 21:02:13 +0400 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-04-10 21:03:30 +0400 |
commit | b8a1f8b4e28b4ff85aae8fdedf586d60f0514118 (patch) | |
tree | 89fc3770280b24c4da5575b28716e8402e0a4bcc /libavfilter/vf_fieldorder.c | |
parent | 0c3d706bdb2276d39cb4e07784ce58664dbc5485 (diff) | |
parent | a39c154049a2d0c4fb02a5c74f58d6986ec21cec (diff) |
Merge commit 'a39c154049a2d0c4fb02a5c74f58d6986ec21cec'
* commit 'a39c154049a2d0c4fb02a5c74f58d6986ec21cec':
vf_fieldorder: switch to an AVOptions-based system.
Conflicts:
doc/filters.texi
libavfilter/vf_fieldorder.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavfilter/vf_fieldorder.c')
-rw-r--r-- | libavfilter/vf_fieldorder.c | 50 |
1 files changed, 15 insertions, 35 deletions
diff --git a/libavfilter/vf_fieldorder.c b/libavfilter/vf_fieldorder.c index 1ef2ad8ab3..653411d853 100644 --- a/libavfilter/vf_fieldorder.c +++ b/libavfilter/vf_fieldorder.c @@ -26,47 +26,19 @@ #include "libavutil/opt.h" #include "libavutil/imgutils.h" #include "libavutil/internal.h" +#include "libavutil/opt.h" #include "libavutil/pixdesc.h" #include "avfilter.h" #include "formats.h" #include "internal.h" #include "video.h" -enum FieldOrder { - ORDER_TFF, - ORDER_BFF, - ORDER_NB, -}; - typedef struct { const AVClass *class; - enum FieldOrder order; - unsigned int dst_tff; ///< output bff/tff + int dst_tff; ///< output bff/tff int line_size[4]; ///< bytes of pixel data per line for each plane } FieldOrderContext; -#define OFFSET(x) offsetof(FieldOrderContext, x) -#define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM - -static const AVOption fieldorder_options[] = { - { "order", "set output field order", OFFSET(order), AV_OPT_TYPE_INT, {.i64=ORDER_TFF}, 0, ORDER_NB-1, FLAGS, "order" }, - { "tff", "set top field first", 0, AV_OPT_TYPE_CONST, {.i64=ORDER_TFF}, .flags=FLAGS, .unit="order" }, - { "bff", "set bottom field first", 0, AV_OPT_TYPE_CONST, {.i64=ORDER_BFF}, .flags=FLAGS, .unit="order" }, - { NULL } -}; - -AVFILTER_DEFINE_CLASS(fieldorder); - -static av_cold int init(AVFilterContext *ctx, const char *args) -{ - FieldOrderContext *fieldorder = ctx->priv; - - fieldorder->dst_tff = fieldorder->order == ORDER_TFF; - av_log(ctx, AV_LOG_VERBOSE, "tff:%d\n", fieldorder->dst_tff); - - return 0; -} - static int query_formats(AVFilterContext *ctx) { AVFilterFormats *formats; @@ -176,6 +148,18 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *frame) return ff_filter_frame(outlink, frame); } +#define OFFSET(x) offsetof(FieldOrderContext, x) +#define FLAGS AV_OPT_FLAG_FILTERING_PARAM|AV_OPT_FLAG_VIDEO_PARAM + +static const AVOption fieldorder_options[] = { + { "order", "output field order", OFFSET(dst_tff), AV_OPT_TYPE_INT, { .i64 = 1 }, 0, 1, FLAGS, "order" }, + { "bff", "bottom field first", 0, AV_OPT_TYPE_CONST, { .i64 = 0 }, .flags=FLAGS, .unit = "order" }, + { "tff", "top field first", 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, .flags=FLAGS, .unit = "order" }, + { NULL }, +}; + +AVFILTER_DEFINE_CLASS(fieldorder); + static const AVFilterPad avfilter_vf_fieldorder_inputs[] = { { .name = "default", @@ -196,16 +180,12 @@ static const AVFilterPad avfilter_vf_fieldorder_outputs[] = { { NULL } }; -static const char *const shorthand[] = { "order", NULL }; - AVFilter avfilter_vf_fieldorder = { .name = "fieldorder", .description = NULL_IF_CONFIG_SMALL("Set the field order."), - .init = init, .priv_size = sizeof(FieldOrderContext), + .priv_class = &fieldorder_class, .query_formats = query_formats, .inputs = avfilter_vf_fieldorder_inputs, .outputs = avfilter_vf_fieldorder_outputs, - .priv_class = &fieldorder_class, - .shorthand = shorthand, }; |