Adjust the default start_frame() and end_frame() implementations to simplify
authorVitor Sessak <vitor1001@gmail.com>
Fri, 15 Feb 2008 21:36:13 +0000 (21:36 +0000)
committerVitor Sessak <vitor1001@gmail.com>
Fri, 15 Feb 2008 21:36:13 +0000 (21:36 +0000)
the implementation of simple filters.

Commited in SoC by Bobby Bingham on 2007-07-08 16:48:15

Originally committed as revision 11982 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavfilter/avfilter.c

index ae69134..001c729 100644 (file)
@@ -64,13 +64,28 @@ AVFilterPicRef *avfilter_default_get_video_buffer(AVFilterLink *link, int perms)
 
 void avfilter_default_start_frame(AVFilterLink *link, AVFilterPicRef *picref)
 {
+    AVFilterLink *out = link->dst->outputs[0];
+
     link->cur_pic = picref;
+
+    if(out) {
+        out->outpic  = avfilter_get_video_buffer(out, AV_PERM_WRITE);
+        avfilter_start_frame(out, avfilter_ref_pic(out->outpic, ~0));
+    }
 }
 
 void avfilter_default_end_frame(AVFilterLink *link)
 {
+    AVFilterLink *out = link->dst->outputs[0];
+
     avfilter_unref_pic(link->cur_pic);
     link->cur_pic = NULL;
+
+    if(out) {
+        avfilter_unref_pic(out->outpic);
+        out->outpic = NULL;
+        avfilter_end_frame(out);
+    }
 }
 
 AVFilterPicRef *avfilter_ref_pic(AVFilterPicRef *ref, int pmask)