mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
aad0e26f93
The stereo_interpolate functions add h_step to the values h BUF_SIZE times. Within the stereo_interpolate C functions, the values h (h0-h3, h00-h13) are declared as local float variables, but the compiler is free to keep them in a register with extra precision. If the accumulation is rounded to 32 bit float precision after each step, the less significant bits of h_step end up ignored and the sum can deviate, affecting the end result more than the currently set EPS. By clearing the log2(BUF_SIZE) lower bits of h_step, we make sure that the accumulation shouldn't differ significantly, regardless of any extra precision in the accmulating register/variable. This fixes the aacpsdsp checkasm test when built with clang for mingw/x86_32. Signed-off-by: Martin Storsjö <martin@martin.st> |
||
---|---|---|
.. | ||
api | ||
checkasm | ||
dnn | ||
fate | ||
filtergraphs | ||
ref | ||
.gitignore | ||
audiogen.c | ||
audiomatch.c | ||
base64.c | ||
copycooker.sh | ||
extended.ffconcat | ||
fate-run.sh | ||
fate-valgrind.supp | ||
fate.sh | ||
Makefile | ||
md5.sh | ||
refcmp-metadata.awk | ||
reference.pnm | ||
rotozoom.c | ||
simple1.ffconcat | ||
simple2.ffconcat | ||
test.ffmeta | ||
tiny_psnr.c | ||
tiny_ssim.c | ||
utils.c | ||
videogen.c |