Merge remote-tracking branch 'aosp/master'

This commit is contained in:
Martin Storsjo 2018-11-06 09:03:05 +02:00
commit 2326faaf8f
1 changed files with 7 additions and 6 deletions

View File

@ -127,9 +127,11 @@ amm-info@iis.fraunhofer.de
The function reads the escape sequence from the bitstream,
if the absolute value of the quantized coefficient has the
value 16.
A limitation is implemented to maximal 31 bits to prevent endless loops.
If it strikes, MAX_QUANTIZED_VALUE + 1 is returned, independent of the sign of
parameter q.
A limitation is implemented to maximal 21 bits according to
ISO/IEC 14496-3:2009(E) 4.6.3.3.
This limits the escape prefix to a maximum of eight 1's.
If more than eight 1's are read, MAX_QUANTIZED_VALUE + 1 is
returned, independent of the sign of parameter q.
\return quantized coefficient
*/
@ -139,12 +141,11 @@ LONG CBlock_GetEscape(HANDLE_FDK_BITSTREAM bs, /*!< pointer to bitstream */
if (fAbs(q) != 16) return (q);
LONG i, off;
for (i = 4; i < 32; i++) {
for (i = 4; i < 13; i++) {
if (FDKreadBit(bs) == 0) break;
}
/* (1 << i) will shift into the sign bit if i >= 31 */
if (i >= 31) return (MAX_QUANTIZED_VALUE + 1);
if (i == 13) return (MAX_QUANTIZED_VALUE + 1);
off = FDKreadBits(bs, i);
i = off + (1 << i);