aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBobby Bingham <uhmmmm@gmail.com>2010-03-18 23:13:02 +0000
committerBobby Bingham <uhmmmm@gmail.com>2010-03-18 23:13:02 +0000
commitd313e17ab1180fcced3e61736e6e87f3d4f5101e (patch)
tree91cc5ac6f11fa26f138f7dc5a75db16e7527e40f
parent91d1c741bfa5c39c222bb3f86357a9da50227df1 (diff)
downloadffmpeg-d313e17ab1180fcced3e61736e6e87f3d4f5101e.tar.gz
Use the new null callbacks to simplify filters and reduce duplicated code.
Originally committed as revision 22595 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavfilter/vf_aspect.c20
-rw-r--r--libavfilter/vf_crop.c8
-rw-r--r--libavfilter/vf_format.c37
-rw-r--r--libavfilter/vf_null.c22
-rw-r--r--libavfilter/vf_slicify.c15
5 files changed, 18 insertions, 84 deletions
diff --git a/libavfilter/vf_aspect.c b/libavfilter/vf_aspect.c
index f1961ce217..801f927ba3 100644
--- a/libavfilter/vf_aspect.c
+++ b/libavfilter/vf_aspect.c
@@ -56,13 +56,6 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
return 0;
}
-
-static AVFilterPicRef *get_video_buffer(AVFilterLink *link, int perms,
- int w, int h)
-{
- return avfilter_get_video_buffer(link->dst->outputs[0], perms, w, h);
-}
-
static void start_frame(AVFilterLink *link, AVFilterPicRef *picref)
{
AspectContext *aspect = link->dst->priv;
@@ -71,11 +64,6 @@ static void start_frame(AVFilterLink *link, AVFilterPicRef *picref)
avfilter_start_frame(link->dst->outputs[0], picref);
}
-static void end_frame(AVFilterLink *link)
-{
- avfilter_end_frame(link->dst->outputs[0]);
-}
-
#if CONFIG_ASPECT_FILTER
/* for aspect filter, convert from frame aspect ratio to pixel aspect ratio */
static int frameaspect_config_props(AVFilterLink *inlink)
@@ -100,9 +88,9 @@ AVFilter avfilter_vf_aspect = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = CODEC_TYPE_VIDEO,
.config_props = frameaspect_config_props,
- .get_video_buffer = get_video_buffer,
+ .get_video_buffer = avfilter_null_get_video_buffer,
.start_frame = start_frame,
- .end_frame = end_frame },
+ .end_frame = avfilter_null_end_frame },
{ .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default",
@@ -122,9 +110,9 @@ AVFilter avfilter_vf_pixelaspect = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = CODEC_TYPE_VIDEO,
- .get_video_buffer = get_video_buffer,
+ .get_video_buffer = avfilter_null_get_video_buffer,
.start_frame = start_frame,
- .end_frame = end_frame },
+ .end_frame = avfilter_null_end_frame },
{ .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default",
diff --git a/libavfilter/vf_crop.c b/libavfilter/vf_crop.c
index 94d89d1e5b..69dfdea2e7 100644
--- a/libavfilter/vf_crop.c
+++ b/libavfilter/vf_crop.c
@@ -156,12 +156,6 @@ static int config_output(AVFilterLink *link)
return 0;
}
-static AVFilterPicRef *get_video_buffer(AVFilterLink *link, int perms,
- int w, int h)
-{
- return avfilter_get_video_buffer(link->dst->outputs[0], perms, w, h);
-}
-
static void start_frame(AVFilterLink *link, AVFilterPicRef *picref)
{
CropContext *crop = link->dst->priv;
@@ -223,7 +217,7 @@ AVFilter avfilter_vf_crop = {
.type = CODEC_TYPE_VIDEO,
.start_frame = start_frame,
.draw_slice = draw_slice,
- .get_video_buffer = get_video_buffer,
+ .get_video_buffer = avfilter_null_get_video_buffer,
.config_props = config_input, },
{ .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default",
diff --git a/libavfilter/vf_format.c b/libavfilter/vf_format.c
index a501e1a72b..2c84b0ab1a 100644
--- a/libavfilter/vf_format.c
+++ b/libavfilter/vf_format.c
@@ -85,27 +85,6 @@ static AVFilterFormats *make_format_list(FormatContext *format, int flag)
return formats;
}
-static AVFilterPicRef *get_video_buffer(AVFilterLink *link, int perms,
- int w, int h)
-{
- return avfilter_get_video_buffer(link->dst->outputs[0], perms, w, h);
-}
-
-static void start_frame(AVFilterLink *link, AVFilterPicRef *picref)
-{
- avfilter_start_frame(link->dst->outputs[0], picref);
-}
-
-static void end_frame(AVFilterLink *link)
-{
- avfilter_end_frame(link->dst->outputs[0]);
-}
-
-static void draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
-{
- avfilter_draw_slice(link->dst->outputs[0], y, h, slice_dir);
-}
-
#if CONFIG_FORMAT_FILTER
static int query_formats_format(AVFilterContext *ctx)
{
@@ -125,10 +104,10 @@ AVFilter avfilter_vf_format = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = CODEC_TYPE_VIDEO,
- .get_video_buffer= get_video_buffer,
- .start_frame = start_frame,
- .draw_slice = draw_slice,
- .end_frame = end_frame, },
+ .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, },
{ .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default",
.type = CODEC_TYPE_VIDEO },
@@ -155,10 +134,10 @@ AVFilter avfilter_vf_noformat = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = CODEC_TYPE_VIDEO,
- .get_video_buffer= get_video_buffer,
- .start_frame = start_frame,
- .draw_slice = draw_slice,
- .end_frame = end_frame, },
+ .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, },
{ .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default",
.type = CODEC_TYPE_VIDEO },
diff --git a/libavfilter/vf_null.c b/libavfilter/vf_null.c
index 582708ce0c..75eba6783f 100644
--- a/libavfilter/vf_null.c
+++ b/libavfilter/vf_null.c
@@ -23,22 +23,6 @@
#include "avfilter.h"
-static AVFilterPicRef *get_video_buffer(AVFilterLink *link, int perms,
- int w, int h)
-{
- return avfilter_get_video_buffer(link->dst->outputs[0], perms, w, h);
-}
-
-static void start_frame(AVFilterLink *link, AVFilterPicRef *picref)
-{
- avfilter_start_frame(link->dst->outputs[0], picref);
-}
-
-static void end_frame(AVFilterLink *link)
-{
- avfilter_end_frame(link->dst->outputs[0]);
-}
-
AVFilter avfilter_vf_null = {
.name = "null",
.description = NULL_IF_CONFIG_SMALL("Pass the source unchanged to the output."),
@@ -47,9 +31,9 @@ AVFilter avfilter_vf_null = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = CODEC_TYPE_VIDEO,
- .get_video_buffer = get_video_buffer,
- .start_frame = start_frame,
- .end_frame = end_frame },
+ .get_video_buffer = avfilter_null_get_video_buffer,
+ .start_frame = avfilter_null_start_frame,
+ .end_frame = avfilter_null_end_frame },
{ .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default",
diff --git a/libavfilter/vf_slicify.c b/libavfilter/vf_slicify.c
index e2ac594611..ec96db499d 100644
--- a/libavfilter/vf_slicify.c
+++ b/libavfilter/vf_slicify.c
@@ -57,12 +57,6 @@ static int config_props(AVFilterLink *link)
return 0;
}
-static AVFilterPicRef *get_video_buffer(AVFilterLink *link, int perms,
- int w, int h)
-{
- return avfilter_get_video_buffer(link->dst->outputs[0], perms, w, h);
-}
-
static void start_frame(AVFilterLink *link, AVFilterPicRef *picref)
{
SliceContext *slice = link->dst->priv;
@@ -81,11 +75,6 @@ static void start_frame(AVFilterLink *link, AVFilterPicRef *picref)
avfilter_start_frame(link->dst->outputs[0], picref);
}
-static void end_frame(AVFilterLink *link)
-{
- avfilter_end_frame(link->dst->outputs[0]);
-}
-
static void draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
{
SliceContext *slice = link->dst->priv;
@@ -116,11 +105,11 @@ AVFilter avfilter_vf_slicify = {
.inputs = (AVFilterPad[]) {{ .name = "default",
.type = CODEC_TYPE_VIDEO,
- .get_video_buffer = get_video_buffer,
+ .get_video_buffer = avfilter_null_get_video_buffer,
.start_frame = start_frame,
.draw_slice = draw_slice,
.config_props = config_props,
- .end_frame = end_frame, },
+ .end_frame = avfilter_null_end_frame, },
{ .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default",
.type = CODEC_TYPE_VIDEO, },