mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-01-02 04:52:09 +00:00
55fc2c5a89
There is a x86-32 MMXEXT implementation for resampling planar 16bit data. multiple_resample() therefore calls emms_c() if it thinks that this needed. And this is bad: 1. It is a maintenance nightmare because changes to the x86 resample DSP code would necessitate changes to the check whether to call emms_c(). 2. The return value of av_get_cpu_flags() does not tell whether the MMX DSP functions are in use, as they could have been overridden by av_force_cpu_flags(). 3. The MMX DSP functions will never be overridden in case of an x86-32 build with --disable-sse2. In this scenario lots of resampling tests (like swr-resample_exact_lin_async-s16p-8000-48000) fail because the cpuflags indicate that SSE2 is available (presuming that the test is run on a CPU with SSE2). 4. The check includes a call to av_get_cpu_flags(). This is not optimized away for arches other than x86-32. 5. The check takes about as much time as emms_c() itself, making it pointless. This commit therefore removes the check and calls emms_c() unconditionally (it is a no-op for non-x86). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> |
||
---|---|---|
.. | ||
aarch64 | ||
arm | ||
tests | ||
x86 | ||
audioconvert.c | ||
audioconvert.h | ||
dither_template.c | ||
dither.c | ||
libswresample.v | ||
log2_tab.c | ||
Makefile | ||
noise_shaping_data.c | ||
options.c | ||
rematrix_template.c | ||
rematrix.c | ||
resample_dsp.c | ||
resample_template.c | ||
resample.c | ||
resample.h | ||
soxr_resample.c | ||
swresample_frame.c | ||
swresample_internal.h | ||
swresample.c | ||
swresample.h | ||
swresampleres.rc | ||
version_major.h | ||
version.c | ||
version.h |