[FFmpeg-cvslog] vf_delogo: don't store two pointers to one AVFilterBufferRef.

Anton Khirnov git at videolan.org
Sat Jul 21 22:32:07 CEST 2012


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Sun Jul  8 04:07:05 2012 +0200| [0fe010a36f6604ea8fd9be04c895395d215177dd] | committer: Anton Khirnov

vf_delogo: don't store two pointers to one AVFilterBufferRef.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=0fe010a36f6604ea8fd9be04c895395d215177dd
---

 libavfilter/vf_delogo.c |    7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/libavfilter/vf_delogo.c b/libavfilter/vf_delogo.c
index c248739..2f9e1f9 100644
--- a/libavfilter/vf_delogo.c
+++ b/libavfilter/vf_delogo.c
@@ -226,7 +226,7 @@ static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref)
         outpicref->video->w = outlink->w;
         outpicref->video->h = outlink->h;
     } else
-        outpicref = inpicref;
+        outpicref = avfilter_ref_buffer(inpicref, ~0);
 
     outlink->out_buf = outpicref;
     ff_start_frame(outlink, avfilter_ref_buffer(outpicref, ~0));
@@ -240,7 +240,7 @@ static void end_frame(AVFilterLink *inlink)
     AVFilterLink *outlink = inlink->dst->outputs[0];
     AVFilterBufferRef *inpicref  = inlink ->cur_buf;
     AVFilterBufferRef *outpicref = outlink->out_buf;
-    int direct = inpicref == outpicref;
+    int direct = inpicref->buf == outpicref->buf;
     int hsub0 = av_pix_fmt_descriptors[inlink->format].log2_chroma_w;
     int vsub0 = av_pix_fmt_descriptors[inlink->format].log2_chroma_h;
     int plane;
@@ -261,8 +261,7 @@ static void end_frame(AVFilterLink *inlink)
     ff_draw_slice(outlink, 0, inlink->h, 1);
     ff_end_frame(outlink);
     avfilter_unref_buffer(inpicref);
-    if (!direct)
-        avfilter_unref_buffer(outpicref);
+    avfilter_unref_buffer(outpicref);
 }
 
 AVFilter avfilter_vf_delogo = {



More information about the ffmpeg-cvslog mailing list