Mercurial > libavcodec.hg
comparison mpc8.c @ 9849:d1119c095555 libavcodec
Correct reading bits in MPC SV8 base codes (when we have to read 0 or >16 bits).
author | kostya |
---|---|
date | Sat, 13 Jun 2009 06:41:51 +0000 |
parents | dcae1f330498 |
children | 987373501407 |
comparison
equal
deleted
inserted
replaced
9848:173ec947655f | 9849:d1119c095555 |
---|---|
42 static const int q3_offsets[2] = { MPC8_Q3_OFFSET, MPC8_Q4_OFFSET }; | 42 static const int q3_offsets[2] = { MPC8_Q3_OFFSET, MPC8_Q4_OFFSET }; |
43 static const int quant_offsets[6] = { MPC8_Q5_OFFSET, MPC8_Q6_OFFSET, MPC8_Q7_OFFSET, MPC8_Q8_OFFSET }; | 43 static const int quant_offsets[6] = { MPC8_Q5_OFFSET, MPC8_Q6_OFFSET, MPC8_Q7_OFFSET, MPC8_Q8_OFFSET }; |
44 | 44 |
45 static inline int mpc8_dec_base(GetBitContext *gb, int k, int n) | 45 static inline int mpc8_dec_base(GetBitContext *gb, int k, int n) |
46 { | 46 { |
47 int code = get_bits(gb, mpc8_cnk_len[k-1][n-1] - 1); | 47 int len = mpc8_cnk_len[k-1][n-1] - 1; |
48 int code = len ? get_bits_long(gb, len) : 0; | |
48 | 49 |
49 if (code >= mpc8_cnk_lost[k-1][n-1]) | 50 if (code >= mpc8_cnk_lost[k-1][n-1]) |
50 code = ((code << 1) | get_bits1(gb)) - mpc8_cnk_lost[k-1][n-1]; | 51 code = ((code << 1) | get_bits1(gb)) - mpc8_cnk_lost[k-1][n-1]; |
51 | 52 |
52 return code; | 53 return code; |