|
|
@ -85,16 +85,16 @@ static inline int decode_scalar(GetBitContext *gb, int k, int readsamplesize) |
|
|
|
/* use alternative encoding */ |
|
|
|
/* use alternative encoding */ |
|
|
|
x = get_bits(gb, readsamplesize); |
|
|
|
x = get_bits(gb, readsamplesize); |
|
|
|
} else if (k != 1) { |
|
|
|
} else if (k != 1) { |
|
|
|
int extrabits = show_bits(gb, k); |
|
|
|
int extrabits = show_bits(gb, k); |
|
|
|
|
|
|
|
|
|
|
|
/* multiply x by 2^k - 1, as part of their strange algorithm */ |
|
|
|
/* multiply x by 2^k - 1, as part of their strange algorithm */ |
|
|
|
x = (x << k) - x; |
|
|
|
x = (x << k) - x; |
|
|
|
|
|
|
|
|
|
|
|
if (extrabits > 1) { |
|
|
|
if (extrabits > 1) { |
|
|
|
x += extrabits - 1; |
|
|
|
x += extrabits - 1; |
|
|
|
skip_bits(gb, k); |
|
|
|
skip_bits(gb, k); |
|
|
|
} else |
|
|
|
} else |
|
|
|
skip_bits(gb, k - 1); |
|
|
|
skip_bits(gb, k - 1); |
|
|
|
} |
|
|
|
} |
|
|
|
return x; |
|
|
|
return x; |
|
|
|
} |
|
|
|
} |
|
|
|