[FFmpeg-cvslog] x86/yuv2rgb: fix crashes when storing data on unaligned buffers
James Almer
git at videolan.org
Fri Jul 17 17:54:32 EEST 2020
ffmpeg | branch: release/4.3 | James Almer <jamrial at gmail.com> | Sun Jul 12 21:32:01 2020 -0300| [799fc4d732fc2515911b75fe816da2bbd20221d9] | committer: James Almer
x86/yuv2rgb: fix crashes when storing data on unaligned buffers
Regression since fc6a5883d6af8cae0e96af84dda0ad74b360a084 on SSSE3 enabled
CPUs.
Fixes ticket #8747
Signed-off-by: James Almer <jamrial at gmail.com>
(cherry picked from commit ba3e771a42c29ee02c34e7769cfc1b2dbc5c760a)
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=799fc4d732fc2515911b75fe816da2bbd20221d9
---
libswscale/x86/yuv_2_rgb.asm | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/libswscale/x86/yuv_2_rgb.asm b/libswscale/x86/yuv_2_rgb.asm
index 575a84d921..003dff1f25 100644
--- a/libswscale/x86/yuv_2_rgb.asm
+++ b/libswscale/x86/yuv_2_rgb.asm
@@ -268,9 +268,9 @@ cglobal %1_420_%2%3, GPR_num, GPR_num, reg_num, parameters
por m2, m7
por m1, m6 ; g5 b5 r6 g6 b6 r7 g7 b7 r8 g8 b8 r9 g9 b9 r10 g10
por m2, m3 ; b10 r11 g11 b11 r12 g12 b12 r13 g13 b13 r14 g14 b14 r15 g15 b15
- mova [imageq], m0
- mova [imageq + 16], m1
- mova [imageq + 32], m2
+ movu [imageq], m0
+ movu [imageq + 16], m1
+ movu [imageq + 32], m2
%endif ; mmsize = 16
%else ; PACK RGB15/16/32
packuswb m0, m1
@@ -300,10 +300,10 @@ cglobal %1_420_%2%3, GPR_num, GPR_num, reg_num, parameters
punpckhwd m_green, m_red
punpcklwd m5, m6
punpckhwd m_alpha, m6
- mova [imageq + 0], m_blue
- mova [imageq + 8 * time_num], m_green
- mova [imageq + 16 * time_num], m5
- mova [imageq + 24 * time_num], m_alpha
+ movu [imageq + 0], m_blue
+ movu [imageq + 8 * time_num], m_green
+ movu [imageq + 16 * time_num], m5
+ movu [imageq + 24 * time_num], m_alpha
%else ; PACK RGB15/16
%define depth 2
%if cpuflag(ssse3)
@@ -342,8 +342,8 @@ cglobal %1_420_%2%3, GPR_num, GPR_num, reg_num, parameters
mova m2, m0
punpcklbw m0, m1
punpckhbw m2, m1
- mova [imageq], m0
- mova [imageq + 8 * time_num], m2
+ movu [imageq], m0
+ movu [imageq + 8 * time_num], m2
%endif ; PACK RGB15/16
%endif ; PACK RGB15/16/32
More information about the ffmpeg-cvslog
mailing list