diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2019-03-04 15:52:49 +0100 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2019-03-04 15:52:49 +0100 |
commit | c7f9c2d1d996ac8f67927e9c86b907196ca6a72d (patch) | |
tree | a2dcc8e8cd3df5628f43242243fd475562ea4082 /libAACdec/src/block.cpp | |
parent | f665ac21b355ebc74c951c09b4774936a74fdca0 (diff) | |
parent | 95858d7bd36f19bde4a9595e2bd68f195215b164 (diff) | |
download | fdk-aac-c7f9c2d1d996ac8f67927e9c86b907196ca6a72d.tar.gz fdk-aac-c7f9c2d1d996ac8f67927e9c86b907196ca6a72d.tar.bz2 fdk-aac-c7f9c2d1d996ac8f67927e9c86b907196ca6a72d.zip |
Merge remote-tracking branch 'mstorjo/master' into dabplus2
Diffstat (limited to 'libAACdec/src/block.cpp')
-rw-r--r-- | libAACdec/src/block.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/libAACdec/src/block.cpp b/libAACdec/src/block.cpp index 1280215..b3d09a6 100644 --- a/libAACdec/src/block.cpp +++ b/libAACdec/src/block.cpp @@ -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); |