[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