vf_gradfun: don't store two pointers to one AVFilterBufferRef.
authorAnton Khirnov <anton@khirnov.net>
Sun, 8 Jul 2012 02:07:05 +0000 (04:07 +0200)
committerAnton Khirnov <anton@khirnov.net>
Fri, 20 Jul 2012 19:07:11 +0000 (21:07 +0200)
libavfilter/vf_gradfun.c

index 71749fe..735bd50 100644 (file)
@@ -191,7 +191,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));
@@ -226,8 +226,7 @@ static void end_frame(AVFilterLink *inlink)
     ff_draw_slice(outlink, 0, inlink->h, 1);
     ff_end_frame(outlink);
     avfilter_unref_buffer(inpic);
-    if (outpic != inpic)
-        avfilter_unref_buffer(outpic);
+    avfilter_unref_buffer(outpic);
 }
 
 AVFilter avfilter_vf_gradfun = {