mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
Change k limiting code, i think the code was buggy.
If you have ALAC files TEST them! Mine produce the same md5 but the new code is not identical if limiting does happen. Originally committed as revision 12872 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
59b377ac86
commit
c49c5e23dc
@ -226,18 +226,20 @@ static void bastardized_rice_decompress(ALACContext *alac,
|
||||
|
||||
k = count_leading_zeros(history) + ((history + 16) >> 6 /* / 64 */) - 24;
|
||||
|
||||
if (k >= rice_kmodifier)
|
||||
k = rice_kmodifier;
|
||||
|
||||
x = (x << k) - x;
|
||||
|
||||
extrabits = show_bits(&alac->gb, k);
|
||||
|
||||
block_size = (((1 << k) - 1) & rice_kmodifier_mask) * x
|
||||
+ extrabits - 1;
|
||||
|
||||
if (extrabits < 2) {
|
||||
x = 1 - extrabits;
|
||||
block_size += x;
|
||||
skip_bits(&alac->gb, k - 1);
|
||||
} else {
|
||||
x += extrabits - 1;
|
||||
skip_bits(&alac->gb, k);
|
||||
}
|
||||
block_size = x;
|
||||
}
|
||||
|
||||
if (block_size > 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user