Change FIX15() back to clipping to -32767..32767.

This avoids a 16-bit overflow in mdct512() due to a -32768 value in costab.
References updated for acodec-ac3, lavf-rm, and seek-ac3_rm tests.
Thanks to Måns Rullgård for finding the bug.

Originally committed as revision 26071 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Justin Ruggles 2010-12-21 21:18:58 +00:00
parent f9f69028af
commit 295ab2af6e
4 changed files with 8 additions and 10 deletions

View File

@ -44,7 +44,7 @@
#define SCALE_FLOAT(a, bits) lrintf((a) * (float)(1 << (bits)))
/** Scale a float value by 2^15, convert to an integer, and clip to int16_t range. */
#define FIX15(a) av_clip_int16(SCALE_FLOAT(a, 15))
#define FIX15(a) av_clip(SCALE_FLOAT(a, 15), -32767, 32767)
/**

View File

@ -1,2 +1,2 @@
464093173530736050e338caf152044c *./tests/data/acodec/ac3.rm
8ea1ce311247d27dc653f274ed7104cd *./tests/data/acodec/ac3.rm
98751 ./tests/data/acodec/ac3.rm

View File

@ -1,2 +1,2 @@
5da8e3db393189708f097cbdddea98f4 *./tests/data/lavf/lavf.rm
03427369521c9ebc2a5408a0e2a163bf *./tests/data/lavf/lavf.rm
346706 ./tests/data/lavf/lavf.rm

View File

@ -3,25 +3,23 @@ ret: 0 st:-1 flags:0 ts:-1.000000
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 271 size: 556
ret: 0 st:-1 flags:1 ts: 1.894167
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 271 size: 556
ret: 0 st: 0 flags:0 ts: 0.788000
ret: 0 st: 0 flags:1 dts: 2.159000 pts: 2.159000 pos: 35567 size: 556
ret:-1 st: 0 flags:0 ts: 0.788000
ret: 0 st: 0 flags:1 ts:-0.317000
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 271 size: 556
ret:-1 st:-1 flags:0 ts: 2.576668
ret: 0 st:-1 flags:0 ts: 2.576668
ret: 0 st: 0 flags:1 dts: 2.960000 pts: 2.960000 pos: 48659 size: 558
ret:-1 st:-1 flags:1 ts: 1.470835
ret:-1 st: 0 flags:0 ts: 0.365000
ret: 0 st: 0 flags:1 ts:-0.741000
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 271 size: 556
ret: 0 st:-1 flags:0 ts: 2.153336
ret: 0 st: 0 flags:1 dts: 2.960000 pts: 2.960000 pos: 48659 size: 558
ret: 0 st:-1 flags:1 ts: 1.047503
ret: 0 st: 0 flags:1 dts: 1.044000 pts: 1.044000 pos: 17349 size: 558
ret:-1 st:-1 flags:1 ts: 1.047503
ret: 0 st: 0 flags:0 ts:-0.058000
ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 271 size: 556
ret: 0 st: 0 flags:1 ts: 2.836000
ret: 0 st: 0 flags:1 dts: 2.333000 pts: 2.333000 pos: 38413 size: 556
ret: 0 st:-1 flags:0 ts: 1.730004
ret: 0 st: 0 flags:1 dts: 1.776000 pts: 1.776000 pos: 29303 size: 558
ret:-1 st:-1 flags:0 ts: 1.730004
ret: 0 st:-1 flags:1 ts: 0.624171
ret: 0 st: 0 flags:1 dts: 0.417000 pts: 0.417000 pos: 7103 size: 556
ret: 0 st: 0 flags:0 ts:-0.482000