diff options
author | Pedro Arthur <bygrandao@gmail.com> | 2015-09-25 18:17:43 +0300 |
---|---|---|
committer | Pedro Arthur <bygrandao@gmail.com> | 2015-09-25 18:18:58 +0300 |
commit | a8602dde5e0a9858b9cee7e3788bef8efc43d950 (patch) | |
tree | 3415dc47893ab1be1c06d87594492950d6eb7233 | |
parent | 25df7b1c35bf488b5dcc60f539fa74870182c647 (diff) |
swscale: fix ticket #4877
-rw-r--r-- | libswscale/swscale.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/libswscale/swscale.c b/libswscale/swscale.c index 346728d9bd..2ccf38f3bb 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -480,17 +480,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++) { |