avfilter: hflip,swapuv,vflip: add timeline support
authorPaul B Mahol <onemda@gmail.com>
Sun, 28 Aug 2016 09:00:06 +0000 (11:00 +0200)
committerPaul B Mahol <onemda@gmail.com>
Sun, 28 Aug 2016 09:00:06 +0000 (11:00 +0200)
libavfilter/vf_hflip.c
libavfilter/vf_swapuv.c
libavfilter/vf_vflip.c

index 6f92284..3e502e3 100644 (file)
@@ -26,6 +26,7 @@
 
 #include <string.h>
 
+#include "libavutil/opt.h"
 #include "avfilter.h"
 #include "formats.h"
 #include "internal.h"
 #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,
 };
index 1a82ef3..8d62c48 100644 (file)
@@ -23,6 +23,7 @@
  * swap UV filter
  */
 
+#include "libavutil/opt.h"
 #include "libavutil/pixdesc.h"
 #include "libavutil/version.h"
 #include "avfilter.h"
 #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,
 };
index cb085e8..c7c39d3 100644 (file)
  */
 
 #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,
 };