[FFmpeg-cvslog] r16554 - in trunk/libavfilter: avfilter.c avfilter.h defaults.c
stefano
subversion
Sun Jan 11 23:05:48 CET 2009
Author: stefano
Date: Sun Jan 11 23:05:48 2009
New Revision: 16554
Log:
Implement the avfilter_default_draw_slice() handler and use it in
avfilter_draw_slice() when the draw_slice callback is not defined in
the input pad.
Modified:
trunk/libavfilter/avfilter.c
trunk/libavfilter/avfilter.h
trunk/libavfilter/defaults.c
Modified: trunk/libavfilter/avfilter.c
==============================================================================
--- trunk/libavfilter/avfilter.c Sun Jan 11 23:05:43 2009 (r16553)
+++ trunk/libavfilter/avfilter.c Sun Jan 11 23:05:48 2009 (r16554)
@@ -250,6 +250,7 @@ void avfilter_draw_slice(AVFilterLink *l
{
uint8_t *src[4], *dst[4];
int i, j, hsub, vsub;
+ void (*draw_slice)(AVFilterLink *, int, int);
/* copy the slice if needed for permission reasons */
if(link->srcpic) {
@@ -279,8 +280,9 @@ void avfilter_draw_slice(AVFilterLink *l
}
}
- if(link_dpad(link).draw_slice)
- link_dpad(link).draw_slice(link, y, h);
+ if(!(draw_slice = link_dpad(link).draw_slice))
+ draw_slice = avfilter_default_draw_slice;
+ draw_slice(link, y, h);
}
AVFilter *avfilter_get_by_name(const char *name)
Modified: trunk/libavfilter/avfilter.h
==============================================================================
--- trunk/libavfilter/avfilter.h Sun Jan 11 23:05:43 2009 (r16553)
+++ trunk/libavfilter/avfilter.h Sun Jan 11 23:05:48 2009 (r16554)
@@ -23,7 +23,7 @@
#define AVFILTER_AVFILTER_H
#define LIBAVFILTER_VERSION_MAJOR 0
-#define LIBAVFILTER_VERSION_MINOR 1
+#define LIBAVFILTER_VERSION_MINOR 2
#define LIBAVFILTER_VERSION_MICRO 0
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
@@ -349,6 +349,8 @@ struct AVFilterPad
/** default handler for start_frame() for video inputs */
void avfilter_default_start_frame(AVFilterLink *link, AVFilterPicRef *picref);
+/** default handler for draw_slice() for video inputs */
+void avfilter_default_draw_slice(AVFilterLink *link, int y, int h);
/** default handler for end_frame() for video inputs */
void avfilter_default_end_frame(AVFilterLink *link);
/** default handler for config_props() for video outputs */
Modified: trunk/libavfilter/defaults.c
==============================================================================
--- trunk/libavfilter/defaults.c Sun Jan 11 23:05:43 2009 (r16553)
+++ trunk/libavfilter/defaults.c Sun Jan 11 23:05:48 2009 (r16554)
@@ -82,6 +82,17 @@ void avfilter_default_start_frame(AVFilt
}
}
+void avfilter_default_draw_slice(AVFilterLink *link, int y, int h)
+{
+ AVFilterLink *out = NULL;
+
+ if(link->dst->output_count)
+ out = link->dst->outputs[0];
+
+ if(out)
+ avfilter_draw_slice(out, y, h);
+}
+
void avfilter_default_end_frame(AVFilterLink *link)
{
AVFilterLink *out = NULL;
More information about the ffmpeg-cvslog
mailing list