lavfi/video: ensure that filter_frame is called.
authorNicolas George <nicolas.george@normalesup.org>
Wed, 26 Dec 2012 23:42:51 +0000 (00:42 +0100)
committerNicolas George <nicolas.george@normalesup.org>
Sun, 30 Dec 2012 17:29:57 +0000 (18:29 +0100)
This is a temporary workaround until all filters have been
upgraded to filter_frame and the framework can forget completely
about start_frame/draw_slice/end_frame.

libavfilter/video.c

index a7ef045..bd2d32a 100644 (file)
@@ -163,6 +163,9 @@ static int default_start_frame(AVFilterLink *inlink, AVFilterBufferRef *picref)
 {
     AVFilterLink *outlink = NULL;
 
+    if (inlink->dstpad->filter_frame)
+        return 0;
+
     if (inlink->dst->nb_outputs)
         outlink = inlink->dst->outputs[0];
 
@@ -275,6 +278,12 @@ static int default_end_frame(AVFilterLink *inlink)
 {
     AVFilterLink *outlink = NULL;
 
+    if (inlink->dstpad->filter_frame) {
+        int ret = inlink->dstpad->filter_frame(inlink, inlink->cur_buf);
+        inlink->cur_buf = NULL;
+        return ret;
+    }
+
     if (inlink->dst->nb_outputs)
         outlink = inlink->dst->outputs[0];