[PR] libswresample/aarch64: Fix sign extension in audio conversion (PR #24203)

haochenc via ffmpeg-devel <[email protected]>
Newsgroups gmane.comp.video.ffmpeg.devel
Message-ID <[email protected]>
PR #24203 opened by haochenc
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24203
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24203.patch

Arguments passed as 32-bit registers (w2, w3) for lengths and channel
counts are used as 64-bit registers (x2, x3) without proper sign
extension, which can lead to out-of-bounds behavior or incorrectly
populated upper limits. This commit adds explicit sxtw instructions to
ensure inputs are correctly sign-extended.

Signed-off-by: Hao Chen <[email protected]>



>From c752cf182a366f85a8aa614218f609f209905186 Mon Sep 17 00:00:00 2001
From: Hao Chen <[email protected]>
Date: Mon, 17 Aug 2026 17:26:10 +0000
Subject: [PATCH] libswresample/aarch64: Fix sign extension in audio conversion

Arguments passed as 32-bit registers (w2, w3) for lengths and channel
counts are used as 64-bit registers (x2, x3) without proper sign
extension, which can lead to out-of-bounds behavior or incorrectly
populated upper limits. This commit adds explicit sxtw instructions to
ensure inputs are correctly sign-extended.

Signed-off-by: Hao Chen <[email protected]>
---
 libswresample/aarch64/audio_convert_neon.S | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/libswresample/aarch64/audio_convert_neon.S b/libswresample/aarch64/audio_convert_neon.S
index 6d789b16d2..d9f9b70699 100644
--- a/libswresample/aarch64/audio_convert_neon.S
+++ b/libswresample/aarch64/audio_convert_neon.S
@@ -24,6 +24,7 @@
 
 function swri_oldapi_conv_flt_to_s16_neon, export=1
 oldapi_conv_flt_to_s16_neon:
+        sxtw            x2,  w2
         subs            x2,  x2,  #8
         ld1             {v0.4s}, [x1],  #16
         fcvtzs          v4.4s,  v0.4s,  #31
@@ -69,6 +70,7 @@ endfunc
 
 function swri_oldapi_conv_fltp_to_s16_2ch_neon, export=1
 oldapi_conv_fltp_to_s16_2ch_neon:
+        sxtw            x2,  w2
         ldp             x4,  x5,  [x1]
         subs            x2,  x2,  #8
         ld1             {v0.4s},  [x4], #16
@@ -132,6 +134,8 @@ oldapi_conv_fltp_to_s16_2ch_neon:
 endfunc
 
 function swri_oldapi_conv_fltp_to_s16_nch_neon, export=1
+        sxtw            x2,  w2
+        sxtw            x3,  w3
         cmp             w3,  #2
         b.eq            oldapi_conv_fltp_to_s16_2ch_neon
         b.gt            1f
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.