ffmpeg | branch: master | Paul B Mahol <one...@gmail.com> | Sun Aug 28 11:00:06 2016 +0200| [88bcdf109a449d302bec977997af83e1462bca6c] | committer: Paul B Mahol
avfilter: hflip,swapuv,vflip: add timeline support > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=88bcdf109a449d302bec977997af83e1462bca6c --- libavfilter/vf_hflip.c | 11 ++++++++++- libavfilter/vf_swapuv.c | 14 ++++++++++++++ libavfilter/vf_vflip.c | 10 ++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/libavfilter/vf_hflip.c b/libavfilter/vf_hflip.c index 6f92284..3e502e3 100644 --- a/libavfilter/vf_hflip.c +++ b/libavfilter/vf_hflip.c @@ -26,6 +26,7 @@ #include <string.h> +#include "libavutil/opt.h" #include "avfilter.h" #include "formats.h" #include "internal.h" @@ -36,11 +37,18 @@ #include "libavutil/imgutils.h" typedef struct FlipContext { + const AVClass *class; int max_step[4]; ///< max pixel step for each plane, expressed as a number of bytes int planewidth[4]; ///< width of each plane int planeheight[4]; ///< height of each plane } FlipContext; +static const AVOption hflip_options[] = { + { NULL } +}; + +AVFILTER_DEFINE_CLASS(hflip); + static int query_formats(AVFilterContext *ctx) { AVFilterFormats *pix_fmts = NULL; @@ -194,8 +202,9 @@ AVFilter ff_vf_hflip = { .name = "hflip", .description = NULL_IF_CONFIG_SMALL("Horizontally flip the input video."), .priv_size = sizeof(FlipContext), + .priv_class = &hflip_class, .query_formats = query_formats, .inputs = avfilter_vf_hflip_inputs, .outputs = avfilter_vf_hflip_outputs, - .flags = AVFILTER_FLAG_SLICE_THREADS, + .flags = AVFILTER_FLAG_SLICE_THREADS | AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, }; diff --git a/libavfilter/vf_swapuv.c b/libavfilter/vf_swapuv.c index 1a82ef3..8d62c48 100644 --- a/libavfilter/vf_swapuv.c +++ b/libavfilter/vf_swapuv.c @@ -23,6 +23,7 @@ * swap UV filter */ +#include "libavutil/opt.h" #include "libavutil/pixdesc.h" #include "libavutil/version.h" #include "avfilter.h" @@ -30,6 +31,16 @@ #include "internal.h" #include "video.h" +typedef struct SwapUVContext { + const AVClass *class; +} SwapUVContext; + +static const AVOption swapuv_options[] = { + { NULL } +}; + +AVFILTER_DEFINE_CLASS(swapuv); + static void do_swap(AVFrame *frame) { FFSWAP(uint8_t*, frame->data[1], frame->data[2]); @@ -110,6 +121,9 @@ AVFilter ff_vf_swapuv = { .name = "swapuv", .description = NULL_IF_CONFIG_SMALL("Swap U and V components."), .query_formats = query_formats, + .priv_size = sizeof(SwapUVContext), + .priv_class = &swapuv_class, .inputs = swapuv_inputs, .outputs = swapuv_outputs, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, }; diff --git a/libavfilter/vf_vflip.c b/libavfilter/vf_vflip.c index cb085e8..c7c39d3 100644 --- a/libavfilter/vf_vflip.c +++ b/libavfilter/vf_vflip.c @@ -24,15 +24,23 @@ */ #include "libavutil/internal.h" +#include "libavutil/opt.h" #include "libavutil/pixdesc.h" #include "avfilter.h" #include "internal.h" #include "video.h" typedef struct FlipContext { + const AVClass *class; int vsub; ///< vertical chroma subsampling } FlipContext; +static const AVOption vflip_options[] = { + { NULL } +}; + +AVFILTER_DEFINE_CLASS(vflip); + static int config_input(AVFilterLink *link) { FlipContext *flip = link->dst->priv; @@ -106,6 +114,8 @@ AVFilter ff_vf_vflip = { .name = "vflip", .description = NULL_IF_CONFIG_SMALL("Flip the input video vertically."), .priv_size = sizeof(FlipContext), + .priv_class = &vflip_class, .inputs = avfilter_vf_vflip_inputs, .outputs = avfilter_vf_vflip_outputs, + .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC, }; _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog