[FFmpeg-devel] [PATCH] ffmpeg fft: fix broken opus on 3dnow
Mikulas Patocka
mikulas at twibright.com
Thu Nov 23 21:12:55 EET 2017
The commit b7c16a3f2c4921f613319938b8ee0e3d6fa83e8d ("x86: fft: Port to
cpuflags") breaks the opus decoder in ffmpeg when compiling for 3dnow. The
output is audible, but there's a lot of noise.
This could be tested by disabling sse and compiling ffmpeg on a processor
with 3dnow support:
CC='gcc -m32' ./configure --disable-sse --disable-sse2 --disable-sse3
The reason for the breakage is that the commit unintentionally changed the
INTERL macro so that it is empty when compiling for 3dnow. This patch
fixes it.
Signed-off-by: Mikulas Patocka <mikulas at twibright.com>
---
libavcodec/x86/fft.asm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: ffmpeg/libavcodec/x86/fft.asm
===================================================================
--- mplayer.orig/libavcodec/x86/fft.asm
+++ mplayer/libavcodec/x86/fft.asm
@@ -199,7 +199,7 @@ SECTION .text
vextractf128 %4 %+ H(%5), %3, 0
vextractf128 %4(%5 + 1), %2, 1
vextractf128 %4 %+ H(%5 + 1), %3, 1
-%elif cpuflag(sse)
+%elif cpuflag(sse) || cpuflag(3dnow)
mova %3, %2
unpcklps %2, %1
unpckhps %3, %1
More information about the ffmpeg-devel
mailing list