[FFmpeg-cvslog] lavfi/smartblur: add missing draw slice call.

Clément Bœsch git at videolan.org
Tue Oct 30 19:31:57 CET 2012


ffmpeg | branch: master | Clément Bœsch <ubitux at gmail.com> | Tue Oct 30 19:36:01 2012 +0100| [03179c2426da9ee9058bafd2f6670b859d9caf4d] | committer: Clément Bœsch

lavfi/smartblur: add missing draw slice call.

This fixes output with filtergraphs such as 'split[a][b];
[a]pad=iw*2[src]; [b]smartblur=1:1:1[filt]; [src][filt]overlay=w'

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

 libavfilter/vf_smartblur.c |    8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/libavfilter/vf_smartblur.c b/libavfilter/vf_smartblur.c
index 0402d1a..0df3ca0 100644
--- a/libavfilter/vf_smartblur.c
+++ b/libavfilter/vf_smartblur.c
@@ -248,9 +248,11 @@ static void blur(uint8_t       *dst, const int dst_linesize,
 
 static int end_frame(AVFilterLink *inlink)
 {
+    int ret;
     SmartblurContext  *sblur  = inlink->dst->priv;
     AVFilterBufferRef *inpic  = inlink->cur_buf;
-    AVFilterBufferRef *outpic = inlink->dst->outputs[0]->out_buf;
+    AVFilterLink *outlink     = inlink->dst->outputs[0];
+    AVFilterBufferRef *outpic = outlink->out_buf;
     int cw = inlink->w >> sblur->hsub;
     int ch = inlink->h >> sblur->vsub;
 
@@ -270,7 +272,9 @@ static int end_frame(AVFilterLink *inlink)
              sblur->chroma.filter_context);
     }
 
-    return ff_end_frame(inlink->dst->outputs[0]);
+    if ((ret = ff_draw_slice(outlink, 0, outlink->h, 1)) < 0)
+        return ret;
+    return ff_end_frame(outlink);
 }
 
 AVFilter avfilter_vf_smartblur = {



More information about the ffmpeg-cvslog mailing list