This is an automated email from the git hooks/post-receive script. Git pushed a commit to branch master in repository ffmpeg.
commit 8e591af32bfaacba101cb66357d10405dbb50b5a Author: David Christle <[email protected]> AuthorDate: Sun Feb 8 15:49:39 2026 -0500 Commit: Martin Storsjö <[email protected]> CommitDate: Mon Mar 2 13:14:07 2026 +0000 swscale/loongarch: fix LASX YUV2RGB residual for multi-row slices The res variable (pixel residual count for widths not divisible by 16) is computed once before the row loop, but DEALYUV2RGBLINERES and DEALYUV2RGBLINERES32 destructively subtract 8 from it inside the loop body. When srcSliceH > 2, subsequent row pairs get an incorrect residual count, producing wrong output for the tail pixels. Fix by recomputing res from the constant c->opts.dst_w at the top of each row-pair iteration. Signed-off-by: David Christle <[email protected]> --- libswscale/loongarch/yuv2rgb_lasx.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libswscale/loongarch/yuv2rgb_lasx.c b/libswscale/loongarch/yuv2rgb_lasx.c index 9032887ff8..d08cf10d4b 100644 --- a/libswscale/loongarch/yuv2rgb_lasx.c +++ b/libswscale/loongarch/yuv2rgb_lasx.c @@ -185,6 +185,7 @@ const uint8_t *py_2 = py_1 + srcStride[0]; \ const uint8_t *pu = src[1] + (y >> vshift) * srcStride[1]; \ const uint8_t *pv = src[2] + (y >> vshift) * srcStride[2]; \ + res = c->opts.dst_w & 15; \ for(x = 0; x < h_size; x++) { \ #define YUV2RGBFUNC32(func_name, dst_type, alpha) \ @@ -213,6 +214,7 @@ const uint8_t *py_2 = py_1 + srcStride[0]; \ const uint8_t *pu = src[1] + (y >> vshift) * srcStride[1]; \ const uint8_t *pv = src[2] + (y >> vshift) * srcStride[2]; \ + res = c->opts.dst_w & 15; \ for(x = 0; x < h_size; x++) { \ #define DEALYUV2RGBLINE \ _______________________________________________ ffmpeg-cvslog mailing list -- [email protected] To unsubscribe send an email to [email protected]
