aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2012-05-19 10:37:56 +0200
committerAnton Khirnov <anton@khirnov.net>2012-05-22 21:36:23 +0200
commitc04c533f62b80e9d6bbcb89946bab6206a8873c5 (patch)
tree46f7a477b17e2f9e56406ae844e963fd5657cbf5
parent43c7a01e9879640859d32b062ac01700e1333c7a (diff)
downloadffmpeg-c04c533f62b80e9d6bbcb89946bab6206a8873c5.tar.gz
lavfi: remove avfilter_null_* from public API on next bump.
Those functions are only useful inside filters. It is better to not support user filters until the API is more stable.
-rw-r--r--libavfilter/avfilter.h6
-rw-r--r--libavfilter/split.c3
-rw-r--r--libavfilter/vf_aspect.c9
-rw-r--r--libavfilter/vf_blackframe.c5
-rw-r--r--libavfilter/vf_copy.c7
-rw-r--r--libavfilter/vf_crop.c3
-rw-r--r--libavfilter/vf_cropdetect.c5
-rw-r--r--libavfilter/vf_delogo.c3
-rw-r--r--libavfilter/vf_drawbox.c7
-rw-r--r--libavfilter/vf_drawtext.c3
-rw-r--r--libavfilter/vf_fade.c5
-rw-r--r--libavfilter/vf_fifo.c3
-rw-r--r--libavfilter/vf_format.c17
-rw-r--r--libavfilter/vf_null.c7
-rw-r--r--libavfilter/vf_select.c3
-rw-r--r--libavfilter/vf_setpts.c3
-rw-r--r--libavfilter/vf_settb.c5
-rw-r--r--libavfilter/vf_showinfo.c5
-rw-r--r--libavfilter/vf_slicify.c5
-rw-r--r--libavfilter/video.c24
-rw-r--r--libavfilter/video.h6
21 files changed, 90 insertions, 44 deletions
diff --git a/libavfilter/avfilter.h b/libavfilter/avfilter.h
index 0d40b7664c..54adc5cf3a 100644
--- a/libavfilter/avfilter.h
+++ b/libavfilter/avfilter.h
@@ -487,18 +487,24 @@ int avfilter_default_query_formats(AVFilterContext *ctx);
*/
void avfilter_set_common_formats(AVFilterContext *ctx, AVFilterFormats *formats);
+#if FF_API_FILTERS_PUBLIC
/** start_frame() handler for filters which simply pass video along */
+attribute_deprecated
void avfilter_null_start_frame(AVFilterLink *link, AVFilterBufferRef *picref);
/** draw_slice() handler for filters which simply pass video along */
+attribute_deprecated
void avfilter_null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir);
/** end_frame() handler for filters which simply pass video along */
+attribute_deprecated
void avfilter_null_end_frame(AVFilterLink *link);
/** get_video_buffer() handler for filters which simply pass video along */
+attribute_deprecated
AVFilterBufferRef *avfilter_null_get_video_buffer(AVFilterLink *link,
int perms, int w, int h);
+#endif
/**
* Filter definition. This defines the pads a filter contains, and all the
diff --git a/libavfilter/split.c b/libavfilter/split.c
index 83ad765081..da33b7d183 100644
--- a/libavfilter/split.c
+++ b/libavfilter/split.c
@@ -25,6 +25,7 @@
#include "avfilter.h"
#include "audio.h"
+#include "video.h"
static int split_init(AVFilterContext *ctx, const char *args, void *opaque)
{
@@ -100,7 +101,7 @@ AVFilter avfilter_vf_split = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer= avfilter_null_get_video_buffer,
+ .get_video_buffer= ff_null_get_video_buffer,
.start_frame = start_frame,
.draw_slice = draw_slice,
.end_frame = end_frame, },
diff --git a/libavfilter/vf_aspect.c b/libavfilter/vf_aspect.c
index 9db29c70f5..4e1fdac90e 100644
--- a/libavfilter/vf_aspect.c
+++ b/libavfilter/vf_aspect.c
@@ -25,6 +25,7 @@
#include "libavutil/mathematics.h"
#include "avfilter.h"
+#include "video.h"
typedef struct {
AVRational aspect;
@@ -100,9 +101,9 @@ AVFilter avfilter_vf_setdar = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.config_props = setdar_config_props,
- .get_video_buffer = avfilter_null_get_video_buffer,
+ .get_video_buffer = ff_null_get_video_buffer,
.start_frame = start_frame,
- .end_frame = avfilter_null_end_frame },
+ .end_frame = ff_null_end_frame },
{ .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default",
@@ -133,9 +134,9 @@ AVFilter avfilter_vf_setsar = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.config_props = setsar_config_props,
- .get_video_buffer = avfilter_null_get_video_buffer,
+ .get_video_buffer = ff_null_get_video_buffer,
.start_frame = start_frame,
- .end_frame = avfilter_null_end_frame },
+ .end_frame = ff_null_end_frame },
{ .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default",
diff --git a/libavfilter/vf_blackframe.c b/libavfilter/vf_blackframe.c
index 770eec94e0..7e69ccb1f6 100644
--- a/libavfilter/vf_blackframe.c
+++ b/libavfilter/vf_blackframe.c
@@ -28,6 +28,7 @@
*/
#include "avfilter.h"
+#include "video.h"
typedef struct {
unsigned int bamount; ///< black amount
@@ -118,8 +119,8 @@ AVFilter avfilter_vf_blackframe = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.draw_slice = draw_slice,
- .get_video_buffer = avfilter_null_get_video_buffer,
- .start_frame = avfilter_null_start_frame,
+ .get_video_buffer = ff_null_get_video_buffer,
+ .start_frame = ff_null_start_frame,
.end_frame = end_frame, },
{ .name = NULL}},
diff --git a/libavfilter/vf_copy.c b/libavfilter/vf_copy.c
index 705ad1e2e6..271a729211 100644
--- a/libavfilter/vf_copy.c
+++ b/libavfilter/vf_copy.c
@@ -22,6 +22,7 @@
*/
#include "avfilter.h"
+#include "video.h"
AVFilter avfilter_vf_copy = {
.name = "copy",
@@ -29,9 +30,9 @@ AVFilter avfilter_vf_copy = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer = avfilter_null_get_video_buffer,
- .start_frame = avfilter_null_start_frame,
- .end_frame = avfilter_null_end_frame,
+ .get_video_buffer = ff_null_get_video_buffer,
+ .start_frame = ff_null_start_frame,
+ .end_frame = ff_null_end_frame,
.rej_perms = ~0 },
{ .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default",
diff --git a/libavfilter/vf_crop.c b/libavfilter/vf_crop.c
index d3b5a09060..5452601068 100644
--- a/libavfilter/vf_crop.c
+++ b/libavfilter/vf_crop.c
@@ -26,6 +26,7 @@
/* #define DEBUG */
#include "avfilter.h"
+#include "video.h"
#include "libavutil/eval.h"
#include "libavutil/avstring.h"
#include "libavutil/libm.h"
@@ -333,7 +334,7 @@ AVFilter avfilter_vf_crop = {
.start_frame = start_frame,
.draw_slice = draw_slice,
.end_frame = end_frame,
- .get_video_buffer = avfilter_null_get_video_buffer,
+ .get_video_buffer = ff_null_get_video_buffer,
.config_props = config_input, },
{ .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default",
diff --git a/libavfilter/vf_cropdetect.c b/libavfilter/vf_cropdetect.c
index 34b5dc9a2a..d321afdd40 100644
--- a/libavfilter/vf_cropdetect.c
+++ b/libavfilter/vf_cropdetect.c
@@ -25,6 +25,7 @@
#include "libavutil/imgutils.h"
#include "avfilter.h"
+#include "video.h"
typedef struct {
int x1, y1, x2, y2;
@@ -203,8 +204,8 @@ AVFilter avfilter_vf_cropdetect = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.config_props = config_input,
- .get_video_buffer = avfilter_null_get_video_buffer,
- .start_frame = avfilter_null_start_frame,
+ .get_video_buffer = ff_null_get_video_buffer,
+ .start_frame = ff_null_start_frame,
.end_frame = end_frame, },
{ .name = NULL}},
diff --git a/libavfilter/vf_delogo.c b/libavfilter/vf_delogo.c
index ca3156814b..a54abe1a79 100644
--- a/libavfilter/vf_delogo.c
+++ b/libavfilter/vf_delogo.c
@@ -29,6 +29,7 @@
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "avfilter.h"
+#include "video.h"
/**
* Apply a simple delogo algorithm to the image in dst and put the
@@ -271,7 +272,7 @@ AVFilter avfilter_vf_delogo = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer = avfilter_null_get_video_buffer,
+ .get_video_buffer = ff_null_get_video_buffer,
.start_frame = start_frame,
.draw_slice = null_draw_slice,
.end_frame = end_frame,
diff --git a/libavfilter/vf_drawbox.c b/libavfilter/vf_drawbox.c
index ab5cb03415..fc80402f60 100644
--- a/libavfilter/vf_drawbox.c
+++ b/libavfilter/vf_drawbox.c
@@ -28,6 +28,7 @@
#include "libavutil/pixdesc.h"
#include "libavutil/parseutils.h"
#include "avfilter.h"
+#include "video.h"
enum { Y, U, V, A };
@@ -130,10 +131,10 @@ AVFilter avfilter_vf_drawbox = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.config_props = config_input,
- .get_video_buffer = avfilter_null_get_video_buffer,
- .start_frame = avfilter_null_start_frame,
+ .get_video_buffer = ff_null_get_video_buffer,
+ .start_frame = ff_null_start_frame,
.draw_slice = draw_slice,
- .end_frame = avfilter_null_end_frame,
+ .end_frame = ff_null_end_frame,
.min_perms = AV_PERM_WRITE | AV_PERM_READ,
.rej_perms = AV_PERM_PRESERVE },
{ .name = NULL}},
diff --git a/libavfilter/vf_drawtext.c b/libavfilter/vf_drawtext.c
index 4846716fe0..5ef0d8c1ca 100644
--- a/libavfilter/vf_drawtext.c
+++ b/libavfilter/vf_drawtext.c
@@ -41,6 +41,7 @@
#include "libavutil/lfg.h"
#include "avfilter.h"
#include "drawutils.h"
+#include "video.h"
#undef time
@@ -875,7 +876,7 @@ AVFilter avfilter_vf_drawtext = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer = avfilter_null_get_video_buffer,
+ .get_video_buffer = ff_null_get_video_buffer,
.start_frame = start_frame,
.draw_slice = null_draw_slice,
.end_frame = end_frame,
diff --git a/libavfilter/vf_fade.c b/libavfilter/vf_fade.c
index 9f748b8882..a0f37d2ad5 100644
--- a/libavfilter/vf_fade.c
+++ b/libavfilter/vf_fade.c
@@ -27,6 +27,7 @@
#include "libavutil/pixdesc.h"
#include "avfilter.h"
+#include "video.h"
typedef struct {
int factor, fade_per_frame;
@@ -157,8 +158,8 @@ AVFilter avfilter_vf_fade = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
.config_props = config_props,
- .get_video_buffer = avfilter_null_get_video_buffer,
- .start_frame = avfilter_null_start_frame,
+ .get_video_buffer = ff_null_get_video_buffer,
+ .start_frame = ff_null_start_frame,
.draw_slice = draw_slice,
.end_frame = end_frame,
.min_perms = AV_PERM_READ | AV_PERM_WRITE,
diff --git a/libavfilter/vf_fifo.c b/libavfilter/vf_fifo.c
index 836cce28b5..b99cec38dc 100644
--- a/libavfilter/vf_fifo.c
+++ b/libavfilter/vf_fifo.c
@@ -24,6 +24,7 @@
*/
#include "avfilter.h"
+#include "video.h"
typedef struct BufPic {
AVFilterBufferRef *picref;
@@ -106,7 +107,7 @@ AVFilter avfilter_vf_fifo = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer= avfilter_null_get_video_buffer,
+ .get_video_buffer= ff_null_get_video_buffer,
.start_frame = start_frame,
.draw_slice = draw_slice,
.end_frame = end_frame,
diff --git a/libavfilter/vf_format.c b/libavfilter/vf_format.c
index 9c1e0d4266..aaaca277df 100644
--- a/libavfilter/vf_format.c
+++ b/libavfilter/vf_format.c
@@ -25,6 +25,7 @@
#include "libavutil/pixdesc.h"
#include "avfilter.h"
+#include "video.h"
typedef struct {
/**
@@ -104,10 +105,10 @@ AVFilter avfilter_vf_format = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer= avfilter_null_get_video_buffer,
- .start_frame = avfilter_null_start_frame,
- .draw_slice = avfilter_null_draw_slice,
- .end_frame = avfilter_null_end_frame, },
+ .get_video_buffer= ff_null_get_video_buffer,
+ .start_frame = ff_null_start_frame,
+ .draw_slice = ff_null_draw_slice,
+ .end_frame = ff_null_end_frame, },
{ .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO },
@@ -134,10 +135,10 @@ AVFilter avfilter_vf_noformat = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer= avfilter_null_get_video_buffer,
- .start_frame = avfilter_null_start_frame,
- .draw_slice = avfilter_null_draw_slice,
- .end_frame = avfilter_null_end_frame, },
+ .get_video_buffer= ff_null_get_video_buffer,
+ .start_frame = ff_null_start_frame,
+ .draw_slice = ff_null_draw_slice,
+ .end_frame = ff_null_end_frame, },
{ .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO },
diff --git a/libavfilter/vf_null.c b/libavfilter/vf_null.c
index 8414c5f4fa..470c3d28a5 100644
--- a/libavfilter/vf_null.c
+++ b/libavfilter/vf_null.c
@@ -22,6 +22,7 @@
*/
#include "avfilter.h"
+#include "video.h"
AVFilter avfilter_vf_null = {
.name = "null",
@@ -31,9 +32,9 @@ AVFilter avfilter_vf_null = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer = avfilter_null_get_video_buffer,
- .start_frame = avfilter_null_start_frame,
- .end_frame = avfilter_null_end_frame },
+ .get_video_buffer = ff_null_get_video_buffer,
+ .start_frame = ff_null_start_frame,
+ .end_frame = ff_null_end_frame },
{ .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default",
diff --git a/libavfilter/vf_select.c b/libavfilter/vf_select.c
index 13ec0407d5..2b6b49c153 100644
--- a/libavfilter/vf_select.c
+++ b/libavfilter/vf_select.c
@@ -27,6 +27,7 @@
#include "libavutil/fifo.h"
#include "libavutil/mathematics.h"
#include "avfilter.h"
+#include "video.h"
static const char *const var_names[] = {
"E", ///< Euler number
@@ -339,7 +340,7 @@ AVFilter avfilter_vf_select = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer = avfilter_null_get_video_buffer,
+ .get_video_buffer = ff_null_get_video_buffer,
.config_props = config_input,
.start_frame = start_frame,
.draw_slice = draw_slice,
diff --git a/libavfilter/vf_setpts.c b/libavfilter/vf_setpts.c
index b49ca5eb57..103f265782 100644
--- a/libavfilter/vf_setpts.c
+++ b/libavfilter/vf_setpts.c
@@ -29,6 +29,7 @@
#include "libavutil/eval.h"
#include "libavutil/mathematics.h"
#include "avfilter.h"
+#include "video.h"
static const char *const var_names[] = {
"E", ///< Euler number
@@ -148,7 +149,7 @@ AVFilter avfilter_vf_setpts = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer = avfilter_null_get_video_buffer,
+ .get_video_buffer = ff_null_get_video_buffer,
.config_props = config_input,
.start_frame = start_frame, },
{ .name = NULL }},
diff --git a/libavfilter/vf_settb.c b/libavfilter/vf_settb.c
index 49f7a57d72..b40ede87cb 100644
--- a/libavfilter/vf_settb.c
+++ b/libavfilter/vf_settb.c
@@ -29,6 +29,7 @@
#include "libavutil/rational.h"
#include "avfilter.h"
#include "internal.h"
+#include "video.h"
static const char *const var_names[] = {
"E",
@@ -130,9 +131,9 @@ AVFilter avfilter_vf_settb = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer = avfilter_null_get_video_buffer,
+ .get_video_buffer = ff_null_get_video_buffer,
.start_frame = start_frame,
- .end_frame = avfilter_null_end_frame },
+ .end_frame = ff_null_end_frame },
{ .name = NULL }},
.outputs = (AVFilterPad[]) {{ .name = "default",
diff --git a/libavfilter/vf_showinfo.c b/libavfilter/vf_showinfo.c
index aa2a7f16f9..0475f9bf90 100644
--- a/libavfilter/vf_showinfo.c
+++ b/libavfilter/vf_showinfo.c
@@ -26,6 +26,7 @@
#include "libavutil/imgutils.h"
#include "libavutil/pixdesc.h"
#include "avfilter.h"
+#include "video.h"
typedef struct {
unsigned int frame;
@@ -86,8 +87,8 @@ AVFilter avfilter_vf_showinfo = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer = avfilter_null_get_video_buffer,
- .start_frame = avfilter_null_start_frame,
+ .get_video_buffer = ff_null_get_video_buffer,
+ .start_frame = ff_null_start_frame,
.end_frame = end_frame,
.min_perms = AV_PERM_READ, },
{ .name = NULL}},
diff --git a/libavfilter/vf_slicify.c b/libavfilter/vf_slicify.c
index cc56fe857c..31d74979af 100644
--- a/libavfilter/vf_slicify.c
+++ b/libavfilter/vf_slicify.c
@@ -24,6 +24,7 @@
*/
#include "avfilter.h"
+#include "video.h"
#include "libavutil/pixdesc.h"
typedef struct {
@@ -105,11 +106,11 @@ AVFilter avfilter_vf_slicify = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO,
- .get_video_buffer = avfilter_null_get_video_buffer,
+ .get_video_buffer = ff_null_get_video_buffer,
.start_frame = start_frame,
.draw_slice = draw_slice,
.config_props = config_props,
- .end_frame = avfilter_null_end_frame, },
+ .end_frame = ff_null_end_frame, },
{ .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default",
.type = AVMEDIA_TYPE_VIDEO, },
diff --git a/libavfilter/video.c b/libavfilter/video.c
index 74b08379bf..6a19388f6e 100644
--- a/libavfilter/video.c
+++ b/libavfilter/video.c
@@ -65,7 +65,7 @@ static void ff_dlog_ref(void *ctx, AVFilterBufferRef *ref, int end)
av_dlog(ctx, "]%s", end ? "\n" : "");
}
-AVFilterBufferRef *avfilter_null_get_video_buffer(AVFilterLink *link, int perms, int w, int h)
+AVFilterBufferRef *ff_null_get_video_buffer(AVFilterLink *link, int perms, int w, int h)
{
return avfilter_get_video_buffer(link->dst->outputs[0], perms, w, h);
}
@@ -160,7 +160,7 @@ AVFilterBufferRef *avfilter_get_video_buffer(AVFilterLink *link, int perms, int
return ret;
}
-void avfilter_null_start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
+void ff_null_start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
{
avfilter_start_frame(link->dst->outputs[0], picref);
}
@@ -211,7 +211,7 @@ void avfilter_start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
start_frame(link, link->cur_buf);
}
-void avfilter_null_end_frame(AVFilterLink *link)
+void ff_null_end_frame(AVFilterLink *link)
{
avfilter_end_frame(link->dst->outputs[0]);
}
@@ -252,7 +252,7 @@ void avfilter_end_frame(AVFilterLink *link)
}
}
-void avfilter_null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
+void ff_null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
{
avfilter_draw_slice(link->dst->outputs[0], y, h, slice_dir);
}
@@ -326,4 +326,20 @@ void avfilter_default_draw_slice(AVFilterLink *inlink, int y, int h, int slice_d
{
default_draw_slice(inlink, y, h, slice_dir);
}
+AVFilterBufferRef *avfilter_null_get_video_buffer(AVFilterLink *link, int perms, int w, int h)
+{
+ return ff_null_get_video_buffer(link, perms, w, h);
+}
+void avfilter_null_start_frame(AVFilterLink *link, AVFilterBufferRef *picref)
+{
+ ff_null_start_frame(link, picref);
+}
+void avfilter_null_end_frame(AVFilterLink *link)
+{
+ ff_null_end_frame(link);
+}
+void avfilter_null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
+{
+ ff_null_draw_slice(link, y, h, slice_dir);
+}
#endif
diff --git a/libavfilter/video.h b/libavfilter/video.h
index 99f84ecde8..f20f30b27c 100644
--- a/libavfilter/video.h
+++ b/libavfilter/video.h
@@ -21,4 +21,10 @@
AVFilterBufferRef *ff_default_get_video_buffer(AVFilterLink *link,
int perms, int w, int h);
+AVFilterBufferRef *ff_null_get_video_buffer(AVFilterLink *link, int perms, int w, int h);
+
+void ff_null_start_frame(AVFilterLink *link, AVFilterBufferRef *picref);
+void ff_null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir);
+void ff_null_end_frame(AVFilterLink *link);
+
#endif /* AVFILTER_VIDEO_H */