[libav-commits] vf_fieldorder: don't give up its own reference to the output buffer.

Anton Khirnov git at libav.org
Fri Jul 20 21:17:32 CEST 2012


Module: libav
Branch: master
Commit: 9203fa0b3225cfb79b37270b2db1200d9183b3b8

Author:    Anton Khirnov <anton at khirnov.net>
Committer: Anton Khirnov <anton at khirnov.net>
Date:      Sun Jul  8 17:01:17 2012 +0200

vf_fieldorder: don't give up its own reference to the output buffer.

---

 libavfilter/vf_fieldorder.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/libavfilter/vf_fieldorder.c b/libavfilter/vf_fieldorder.c
index 55e7238..b3cce19 100644
--- a/libavfilter/vf_fieldorder.c
+++ b/libavfilter/vf_fieldorder.c
@@ -121,12 +121,13 @@ static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref)
     AVFilterContext   *ctx        = inlink->dst;
     AVFilterLink      *outlink    = ctx->outputs[0];
 
-    AVFilterBufferRef *outpicref;
+    AVFilterBufferRef *outpicref, *for_next_filter;
 
     outpicref = avfilter_ref_buffer(inpicref, ~0);
     outlink->out_buf = outpicref;
 
-    ff_start_frame(outlink, outpicref);
+    for_next_filter = avfilter_ref_buffer(outpicref, ~0);
+    ff_start_frame(outlink, for_next_filter);
 }
 
 static void draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir)
@@ -213,6 +214,7 @@ static void end_frame(AVFilterLink *inlink)
 
     ff_end_frame(outlink);
     avfilter_unref_buffer(inpicref);
+    avfilter_unref_bufferp(&outlink->out_buf);
 }
 
 AVFilter avfilter_vf_fieldorder = {



More information about the libav-commits mailing list