[FFmpeg-cvslog] swscale/swscale: Try to fix rgb48Toxyz12() with slices

Michael Niedermayer git at videolan.org
Fri Sep 2 22:58:49 EEST 2016


ffmpeg | branch: master | Michael Niedermayer <michael at niedermayer.cc> | Fri Sep  2 16:52:55 2016 +0200| [89ec11e096131bf0b74e04e3c19ec2007600fa94] | committer: Michael Niedermayer

swscale/swscale: Try to fix rgb48Toxyz12() with slices

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

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

 libswscale/swscale.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/libswscale/swscale.c b/libswscale/swscale.c
index 63d16bd..a192a1f 100644
--- a/libswscale/swscale.c
+++ b/libswscale/swscale.c
@@ -978,8 +978,14 @@ int attribute_align_arg sws_scale(struct SwsContext *c,
 
 
     if (c->dstXYZ && !(c->srcXYZ && c->srcW==c->dstW && c->srcH==c->dstH)) {
+        int dstY = c->dstY ? c->dstY : srcSliceY + srcSliceH;
+        av_assert0(dstY >= ret);
+        av_assert0(ret >= 0);
+        av_assert0(c->dstH >= dstY);
+
+        uint16_t *dst16 = (uint16_t*)(dst2[0] + (dstY - ret) * dstStride2[0]);
         /* replace on the same data */
-        rgb48Toxyz12(c, (uint16_t*)dst2[0], (const uint16_t*)dst2[0], dstStride[0]/2, ret);
+        rgb48Toxyz12(c, dst16, dst16, dstStride2[0]/2, ret);
     }
 
     av_free(rgb0_tmp);



More information about the ffmpeg-cvslog mailing list