Unified · Split
| @@ -595,7 +595,7 @@ static int read_dct_coeffs(GetBitContext *gb, int32_t block[64], const uint8_t * · 594 unmodified lines | |||
| 595 | { | 595 | { |
| 596 | int coef_list[128]; | 596 | int coef_list[128]; |
| 597 | int mode_list[128]; | 597 | int mode_list[128]; |
| 598 | int i, t, mask, bits, ccoef, mode, sign; | 598 | int i, t, bits, ccoef, mode, sign; |
| 599 | int list_start = 64, list_end = 64, list_pos; | 599 | int list_start = 64, list_end = 64, list_pos; |
| 600 | int coef_count = 0; | 600 | int coef_count = 0; |
| 601 | int coef_idx[64]; | 601 | int coef_idx[64]; |
| @@ -609,8 +609,7 @@ static int read_dct_coeffs(GetBitContext *gb, int32_t block[64], const uint8_t * · 7 unmodified lines | |||
| 609 | coef_list[list_end] = 2; mode_list[list_end++] = 3; | 609 | coef_list[list_end] = 2; mode_list[list_end++] = 3; |
| 610 | coef_list[list_end] = 3; mode_list[list_end++] = 3; | 610 | coef_list[list_end] = 3; mode_list[list_end++] = 3; |
| 611 | 611 | ||
| 612 | bits = get_bits(gb, 4) - 1; | 612 | for (bits = get_bits(gb, 4) - 1; bits >= 0; bits--) { |
| 613 | for (mask = 1 << bits; bits >= 0; mask >>= 1, bits--) { | ||
| 614 | list_pos = list_start; | 613 | list_pos = list_start; |
| 615 | while (list_pos < list_end) { | 614 | while (list_pos < list_end) { |
| 616 | if (!(mode_list[list_pos] | coef_list[list_pos]) || !get_bits1(gb)) { | 615 | 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 * · 19 unmodified lines | |||
| 636 | if (!bits) { | 635 | if (!bits) { |
| 637 | t = 1 - (get_bits1(gb) << 1); | 636 | t = 1 - (get_bits1(gb) << 1); |
| 638 | } else { | 637 | } else { |
| 639 | t = get_bits(gb, bits) | mask; | 638 | t = get_bits(gb, bits) | 1 << bits; |
| 640 | sign = -get_bits1(gb); | 639 | sign = -get_bits1(gb); |
| 641 | t = (t ^ sign) - sign; | 640 | t = (t ^ sign) - sign; |
| 642 | } | 641 | } |
| @@ -657,7 +656,7 @@ static int read_dct_coeffs(GetBitContext *gb, int32_t block[64], const uint8_t * · 14 unmodified lines | |||
| 657 | if (!bits) { | 656 | if (!bits) { |
| 658 | t = 1 - (get_bits1(gb) << 1); | 657 | t = 1 - (get_bits1(gb) << 1); |
| 659 | } else { | 658 | } else { |
| 660 | t = get_bits(gb, bits) | mask; | 659 | t = get_bits(gb, bits) | 1 << bits; |
| 661 | sign = -get_bits1(gb); | 660 | sign = -get_bits1(gb); |
| 662 | t = (t ^ sign) - sign; | 661 | t = (t ^ sign) - sign; |
| 663 | } | 662 | } |