[FFmpeg-cvslog] binkvideo: simplify and remove invalid shifts
Mans Rullgard
git at videolan.org
Tue Nov 15 03:27:19 CET 2011
ffmpeg | branch: master | Mans Rullgard <mans at mansr.com> | Sun Nov 13 15:25:53 2011 +0000| [3f5d6a665aba439a9309ed735e71403d236a313d] | committer: Mans Rullgard
binkvideo: simplify and remove invalid shifts
Signed-off-by: Mans Rullgard <mans at mansr.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=3f5d6a665aba439a9309ed735e71403d236a313d
---
libavcodec/bink.c | 9 ++++-----
1 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/libavcodec/bink.c b/libavcodec/bink.c
index 474e5c4..b55ea07 100644
--- a/libavcodec/bink.c
+++ b/libavcodec/bink.c
@@ -595,7 +595,7 @@ static int read_dct_coeffs(GetBitContext *gb, int32_t block[64], const uint8_t *
{
int coef_list[128];
int mode_list[128];
- int i, t, mask, bits, ccoef, mode, sign;
+ int i, t, bits, ccoef, mode, sign;
int list_start = 64, list_end = 64, list_pos;
int coef_count = 0;
int coef_idx[64];
@@ -609,8 +609,7 @@ static int read_dct_coeffs(GetBitContext *gb, int32_t block[64], const uint8_t *
coef_list[list_end] = 2; mode_list[list_end++] = 3;
coef_list[list_end] = 3; mode_list[list_end++] = 3;
- bits = get_bits(gb, 4) - 1;
- for (mask = 1 << bits; bits >= 0; mask >>= 1, bits--) {
+ for (bits = get_bits(gb, 4) - 1; bits >= 0; bits--) {
list_pos = list_start;
while (list_pos < list_end) {
if (!(mode_list[list_pos] | coef_list[list_pos]) || !get_bits1(gb)) {
@@ -636,7 +635,7 @@ static int read_dct_coeffs(GetBitContext *gb, int32_t block[64], const uint8_t *
if (!bits) {
t = 1 - (get_bits1(gb) << 1);
} else {
- t = get_bits(gb, bits) | mask;
+ t = get_bits(gb, bits) | 1 << bits;
sign = -get_bits1(gb);
t = (t ^ sign) - sign;
}
@@ -657,7 +656,7 @@ static int read_dct_coeffs(GetBitContext *gb, int32_t block[64], const uint8_t *
if (!bits) {
t = 1 - (get_bits1(gb) << 1);
} else {
- t = get_bits(gb, bits) | mask;
+ t = get_bits(gb, bits) | 1 << bits;
sign = -get_bits1(gb);
t = (t ^ sign) - sign;
}
More information about the ffmpeg-cvslog
mailing list