ffmpeg | branch: master | Vardan Margaryan <v.t.margar...@gmail.com> | Mon May 
23 19:06:16 2022 +0300| [73302aa193714958afb8262ceb14d9613e9df5ad] | committer: 
Anton Khirnov

swscale/x86/yuv_2_rgb: fix access to memory past the frame data in yuv to rgb 
conversion

Y, U, V data is loaded at the end of the current iteration for the next
iteration.
It results in memory access past the frame data on the last iteration
(that data is never used after the loading).

So load data at the start of the iteration, so that only useful data is
loaded.

Signed-off-by: Vardan Margaryan <v.t.margar...@gmail.com>
Signed-off-by: Anton Khirnov <an...@khirnov.net>

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

 libswscale/x86/yuv_2_rgb.asm | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/libswscale/x86/yuv_2_rgb.asm b/libswscale/x86/yuv_2_rgb.asm
index 2f0b4130df..f968b3a0a2 100644
--- a/libswscale/x86/yuv_2_rgb.asm
+++ b/libswscale/x86/yuv_2_rgb.asm
@@ -139,10 +139,10 @@ cglobal %1_420_%2%3, GPR_num, GPR_num, reg_num, parameters
     VBROADCASTSD vr_coff,  [pointer_c_ditherq + 4  * 8]
 %endif
 %endif
+.loop0:
     movu m_y, [py_2indexq + 2 * indexq]
     movh m_u, [pu_indexq  +     indexq]
     movh m_v, [pv_indexq  +     indexq]
-.loop0:
     pxor m4, m4
     mova m7, m6
     punpcklbw m0, m4
@@ -347,9 +347,6 @@ cglobal %1_420_%2%3, GPR_num, GPR_num, reg_num, parameters
 %endif ; PACK RGB15/16
 %endif ; PACK RGB15/16/32
 
-movu m_y, [py_2indexq + 2 * indexq + 8 * time_num]
-movh m_v, [pv_indexq  +     indexq + 4 * time_num]
-movh m_u, [pu_indexq  +     indexq + 4 * time_num]
 add imageq, 8 * depth * time_num
 add indexq, 4 * time_num
 js .loop0

_______________________________________________
ffmpeg-cvslog mailing list
ffmpeg-cvslog@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog

To unsubscribe, visit link above, or email
ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to