[FFmpeg-cvslog] swscale: fix ticket #4877

Pedro Arthur git at videolan.org
Thu Oct 8 14:34:57 CEST 2015


ffmpeg | branch: release/2.8 | Pedro Arthur <bygrandao at gmail.com> | Fri Sep 25 12:17:43 2015 -0300| [01bf0a178d90c078d45bee22d640a53decfc56cb] | committer: Michael Niedermayer

swscale: fix ticket #4877
(cherry picked from commit a8602dde5e0a9858b9cee7e3788bef8efc43d950)

Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

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

 libswscale/swscale.c |   23 ++++++++++++-----------
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/libswscale/swscale.c b/libswscale/swscale.c
index cdc30a2..ac224a8 100644
--- a/libswscale/swscale.c
+++ b/libswscale/swscale.c
@@ -476,17 +476,18 @@ static int swscale(SwsContext *c, const uint8_t *src[],
     ff_init_slice_from_src(vout_slice, (uint8_t**)dst, dstStride, c->dstW,
             dstY, dstH, dstY >> c->chrDstVSubSample,
             FF_CEIL_RSHIFT(dstH, c->chrDstVSubSample));
-
-    hout_slice->plane[0].sliceY = lastInLumBuf + 1;
-    hout_slice->plane[1].sliceY = lastInChrBuf + 1;
-    hout_slice->plane[2].sliceY = lastInChrBuf + 1;
-    hout_slice->plane[3].sliceY = lastInLumBuf + 1;
-
-    hout_slice->plane[0].sliceH =
-    hout_slice->plane[1].sliceH =
-    hout_slice->plane[2].sliceH =
-    hout_slice->plane[3].sliceH = 0;
-    hout_slice->width = dstW;
+    if (srcSliceY == 0) {
+        hout_slice->plane[0].sliceY = lastInLumBuf + 1;
+        hout_slice->plane[1].sliceY = lastInChrBuf + 1;
+        hout_slice->plane[2].sliceY = lastInChrBuf + 1;
+        hout_slice->plane[3].sliceY = lastInLumBuf + 1;
+
+        hout_slice->plane[0].sliceH =
+        hout_slice->plane[1].sliceH =
+        hout_slice->plane[2].sliceH =
+        hout_slice->plane[3].sliceH = 0;
+        hout_slice->width = dstW;
+    }
 #endif
 
     for (; dstY < dstH; dstY++) {



More information about the ffmpeg-cvslog mailing list