lavfi: unref AVFilterLink.out_buf in ff_end_frame().
authorAnton Khirnov <anton@khirnov.net>
Sat, 14 Jul 2012 15:09:43 +0000 (17:09 +0200)
committerAnton Khirnov <anton@khirnov.net>
Fri, 20 Jul 2012 19:12:49 +0000 (21:12 +0200)
This reduces code duplication and prevents stale pointers from remaining
on the link.

libavfilter/vf_delogo.c
libavfilter/vf_fieldorder.c
libavfilter/vf_frei0r.c
libavfilter/vf_gradfun.c
libavfilter/vf_hqdn3d.c
libavfilter/vf_libopencv.c
libavfilter/vf_pad.c
libavfilter/vf_transpose.c
libavfilter/vf_unsharp.c
libavfilter/video.c

index f9c5ad7..9c6e488 100644 (file)
@@ -260,7 +260,6 @@ static void end_frame(AVFilterLink *inlink)
 
     ff_draw_slice(outlink, 0, inlink->h, 1);
     ff_end_frame(outlink);
-    avfilter_unref_buffer(outpicref);
 }
 
 AVFilter avfilter_vf_delogo = {
index 05882d1..1ddec15 100644 (file)
@@ -213,7 +213,6 @@ static void end_frame(AVFilterLink *inlink)
     }
 
     ff_end_frame(outlink);
-    avfilter_unref_bufferp(&outlink->out_buf);
 }
 
 AVFilter avfilter_vf_fieldorder = {
index 87c9276..98d34ab 100644 (file)
@@ -354,7 +354,6 @@ static void end_frame(AVFilterLink *inlink)
                    (uint32_t *)outpicref->data[0]);
     ff_draw_slice(outlink, 0, outlink->h, 1);
     ff_end_frame(outlink);
-    avfilter_unref_buffer(outpicref);
 }
 
 AVFilter avfilter_vf_frei0r = {
index b6583d7..873c0d0 100644 (file)
@@ -225,7 +225,6 @@ static void end_frame(AVFilterLink *inlink)
 
     ff_draw_slice(outlink, 0, inlink->h, 1);
     ff_end_frame(outlink);
-    avfilter_unref_buffer(outpic);
 }
 
 AVFilter avfilter_vf_gradfun = {
index 79adaea..221ff2e 100644 (file)
@@ -322,7 +322,6 @@ static void end_frame(AVFilterLink *inlink)
 
     ff_draw_slice(outlink, 0, inpic->video->h, 1);
     ff_end_frame(outlink);
-    avfilter_unref_buffer(outpic);
 }
 
 AVFilter avfilter_vf_hqdn3d = {
index f04d469..1e8185f 100644 (file)
@@ -367,7 +367,6 @@ static void end_frame(AVFilterLink *inlink)
 
     ff_draw_slice(outlink, 0, outlink->h, 1);
     ff_end_frame(outlink);
-    avfilter_unref_buffer(outpicref);
 }
 
 AVFilter avfilter_vf_ocv = {
index b0d5c5f..6ce70bd 100644 (file)
@@ -347,7 +347,6 @@ static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref)
 static void end_frame(AVFilterLink *link)
 {
     ff_end_frame(link->dst->outputs[0]);
-    avfilter_unref_buffer(link->dst->outputs[0]->out_buf);
 }
 
 static void draw_send_bar_slice(AVFilterLink *link, int y, int h, int slice_dir, int before_slice)
index e772e8b..ed75866 100644 (file)
@@ -194,7 +194,6 @@ static void end_frame(AVFilterLink *inlink)
 
     ff_draw_slice(outlink, 0, outpic->video->h, 1);
     ff_end_frame(outlink);
-    avfilter_unref_buffer(outpic);
 }
 
 AVFilter avfilter_vf_transpose = {
index 3d28759..2a0fe00 100644 (file)
@@ -227,7 +227,6 @@ static void end_frame(AVFilterLink *link)
 
     ff_draw_slice(link->dst->outputs[0], 0, link->h, 1);
     ff_end_frame(link->dst->outputs[0]);
-    avfilter_unref_buffer(out);
 }
 
 static void draw_slice(AVFilterLink *link, int y, int h, int slice_dir)
index e507f97..f61eafe 100644 (file)
@@ -225,10 +225,6 @@ static void default_end_frame(AVFilterLink *inlink)
         outlink = inlink->dst->outputs[0];
 
     if (outlink) {
-        if (outlink->out_buf) {
-            avfilter_unref_buffer(outlink->out_buf);
-            outlink->out_buf = NULL;
-        }
         ff_end_frame(outlink);
     }
 }
@@ -249,6 +245,7 @@ void ff_end_frame(AVFilterLink *link)
         link->src_buf = NULL;
     }
     avfilter_unref_bufferp(&link->cur_buf);
+    avfilter_unref_bufferp(&link->out_buf);
 }
 
 void ff_null_draw_slice(AVFilterLink *link, int y, int h, int slice_dir)