Commit a168a03c authored by koorogi's avatar koorogi

Use the new null callbacks to simplify filters and reduce duplicated code.

git-svn-id: file:///var/local/repositories/ffmpeg/trunk@22595 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 2f6af636
...@@ -56,13 +56,6 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque) ...@@ -56,13 +56,6 @@ static av_cold int init(AVFilterContext *ctx, const char *args, void *opaque)
return 0; 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) static void start_frame(AVFilterLink *link, AVFilterPicRef *picref)
{ {
AspectContext *aspect = link->dst->priv; AspectContext *aspect = link->dst->priv;
...@@ -71,11 +64,6 @@ static void start_frame(AVFilterLink *link, AVFilterPicRef *picref) ...@@ -71,11 +64,6 @@ static void start_frame(AVFilterLink *link, AVFilterPicRef *picref)
avfilter_start_frame(link->dst->outputs[0], 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 #if CONFIG_ASPECT_FILTER
/* for aspect filter, convert from frame aspect ratio to pixel aspect ratio */ /* for aspect filter, convert from frame aspect ratio to pixel aspect ratio */
static int frameaspect_config_props(AVFilterLink *inlink) static int frameaspect_config_props(AVFilterLink *inlink)
...@@ -100,9 +88,9 @@ AVFilter avfilter_vf_aspect = { ...@@ -100,9 +88,9 @@ AVFilter avfilter_vf_aspect = {
.inputs = (AVFilterPad[]) {{ .name = "default", .inputs = (AVFilterPad[]) {{ .name = "default",
.type = CODEC_TYPE_VIDEO, .type = CODEC_TYPE_VIDEO,
.config_props = frameaspect_config_props, .config_props = frameaspect_config_props,
.get_video_buffer = get_video_buffer, .get_video_buffer = avfilter_null_get_video_buffer,
.start_frame = start_frame, .start_frame = start_frame,
.end_frame = end_frame }, .end_frame = avfilter_null_end_frame },
{ .name = NULL}}, { .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default", .outputs = (AVFilterPad[]) {{ .name = "default",
...@@ -122,9 +110,9 @@ AVFilter avfilter_vf_pixelaspect = { ...@@ -122,9 +110,9 @@ AVFilter avfilter_vf_pixelaspect = {
.inputs = (AVFilterPad[]) {{ .name = "default", .inputs = (AVFilterPad[]) {{ .name = "default",
.type = CODEC_TYPE_VIDEO, .type = CODEC_TYPE_VIDEO,
.get_video_buffer = get_video_buffer, .get_video_buffer = avfilter_null_get_video_buffer,
.start_frame = start_frame, .start_frame = start_frame,
.end_frame = end_frame }, .end_frame = avfilter_null_end_frame },
{ .name = NULL}}, { .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default", .outputs = (AVFilterPad[]) {{ .name = "default",
......
...@@ -156,12 +156,6 @@ static int config_output(AVFilterLink *link) ...@@ -156,12 +156,6 @@ static int config_output(AVFilterLink *link)
return 0; 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) static void start_frame(AVFilterLink *link, AVFilterPicRef *picref)
{ {
CropContext *crop = link->dst->priv; CropContext *crop = link->dst->priv;
...@@ -223,7 +217,7 @@ AVFilter avfilter_vf_crop = { ...@@ -223,7 +217,7 @@ AVFilter avfilter_vf_crop = {
.type = CODEC_TYPE_VIDEO, .type = CODEC_TYPE_VIDEO,
.start_frame = start_frame, .start_frame = start_frame,
.draw_slice = draw_slice, .draw_slice = draw_slice,
.get_video_buffer = get_video_buffer, .get_video_buffer = avfilter_null_get_video_buffer,
.config_props = config_input, }, .config_props = config_input, },
{ .name = NULL}}, { .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default", .outputs = (AVFilterPad[]) {{ .name = "default",
......
...@@ -85,27 +85,6 @@ static AVFilterFormats *make_format_list(FormatContext *format, int flag) ...@@ -85,27 +85,6 @@ static AVFilterFormats *make_format_list(FormatContext *format, int flag)
return formats; 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 #if CONFIG_FORMAT_FILTER
static int query_formats_format(AVFilterContext *ctx) static int query_formats_format(AVFilterContext *ctx)
{ {
...@@ -125,10 +104,10 @@ AVFilter avfilter_vf_format = { ...@@ -125,10 +104,10 @@ AVFilter avfilter_vf_format = {
.inputs = (AVFilterPad[]) {{ .name = "default", .inputs = (AVFilterPad[]) {{ .name = "default",
.type = CODEC_TYPE_VIDEO, .type = CODEC_TYPE_VIDEO,
.get_video_buffer= get_video_buffer, .get_video_buffer= avfilter_null_get_video_buffer,
.start_frame = start_frame, .start_frame = avfilter_null_start_frame,
.draw_slice = draw_slice, .draw_slice = avfilter_null_draw_slice,
.end_frame = end_frame, }, .end_frame = avfilter_null_end_frame, },
{ .name = NULL}}, { .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default", .outputs = (AVFilterPad[]) {{ .name = "default",
.type = CODEC_TYPE_VIDEO }, .type = CODEC_TYPE_VIDEO },
...@@ -155,10 +134,10 @@ AVFilter avfilter_vf_noformat = { ...@@ -155,10 +134,10 @@ AVFilter avfilter_vf_noformat = {
.inputs = (AVFilterPad[]) {{ .name = "default", .inputs = (AVFilterPad[]) {{ .name = "default",
.type = CODEC_TYPE_VIDEO, .type = CODEC_TYPE_VIDEO,
.get_video_buffer= get_video_buffer, .get_video_buffer= avfilter_null_get_video_buffer,
.start_frame = start_frame, .start_frame = avfilter_null_start_frame,
.draw_slice = draw_slice, .draw_slice = avfilter_null_draw_slice,
.end_frame = end_frame, }, .end_frame = avfilter_null_end_frame, },
{ .name = NULL}}, { .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default", .outputs = (AVFilterPad[]) {{ .name = "default",
.type = CODEC_TYPE_VIDEO }, .type = CODEC_TYPE_VIDEO },
......
...@@ -23,22 +23,6 @@ ...@@ -23,22 +23,6 @@
#include "avfilter.h" #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 = { AVFilter avfilter_vf_null = {
.name = "null", .name = "null",
.description = NULL_IF_CONFIG_SMALL("Pass the source unchanged to the output."), .description = NULL_IF_CONFIG_SMALL("Pass the source unchanged to the output."),
...@@ -47,9 +31,9 @@ AVFilter avfilter_vf_null = { ...@@ -47,9 +31,9 @@ AVFilter avfilter_vf_null = {
.inputs = (AVFilterPad[]) {{ .name = "default", .inputs = (AVFilterPad[]) {{ .name = "default",
.type = CODEC_TYPE_VIDEO, .type = CODEC_TYPE_VIDEO,
.get_video_buffer = get_video_buffer, .get_video_buffer = avfilter_null_get_video_buffer,
.start_frame = start_frame, .start_frame = avfilter_null_start_frame,
.end_frame = end_frame }, .end_frame = avfilter_null_end_frame },
{ .name = NULL}}, { .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default", .outputs = (AVFilterPad[]) {{ .name = "default",
......
...@@ -57,12 +57,6 @@ static int config_props(AVFilterLink *link) ...@@ -57,12 +57,6 @@ static int config_props(AVFilterLink *link)
return 0; 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) static void start_frame(AVFilterLink *link, AVFilterPicRef *picref)
{ {
SliceContext *slice = link->dst->priv; SliceContext *slice = link->dst->priv;
...@@ -81,11 +75,6 @@ static void start_frame(AVFilterLink *link, AVFilterPicRef *picref) ...@@ -81,11 +75,6 @@ static void start_frame(AVFilterLink *link, AVFilterPicRef *picref)
avfilter_start_frame(link->dst->outputs[0], 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) static void draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
{ {
SliceContext *slice = link->dst->priv; SliceContext *slice = link->dst->priv;
...@@ -116,11 +105,11 @@ AVFilter avfilter_vf_slicify = { ...@@ -116,11 +105,11 @@ AVFilter avfilter_vf_slicify = {
.inputs = (AVFilterPad[]) {{ .name = "default", .inputs = (AVFilterPad[]) {{ .name = "default",
.type = CODEC_TYPE_VIDEO, .type = CODEC_TYPE_VIDEO,
.get_video_buffer = get_video_buffer, .get_video_buffer = avfilter_null_get_video_buffer,
.start_frame = start_frame, .start_frame = start_frame,
.draw_slice = draw_slice, .draw_slice = draw_slice,
.config_props = config_props, .config_props = config_props,
.end_frame = end_frame, }, .end_frame = avfilter_null_end_frame, },
{ .name = NULL}}, { .name = NULL}},
.outputs = (AVFilterPad[]) {{ .name = "default", .outputs = (AVFilterPad[]) {{ .name = "default",
.type = CODEC_TYPE_VIDEO, }, .type = CODEC_TYPE_VIDEO, },
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment