diff --git a/libavcodec/h264.c b/libavcodec/h264.c index aa7473aeac..d3a8e56bbc 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -4091,7 +4091,7 @@ static int decode_residual(H264Context *h, GetBitContext *gb, DCTELEM *block, in level[i]= 1 - 2*get_bits1(gb); } - if(i 10 && trailing_ones < 3; int prefix= get_level_prefix(gb); @@ -4120,11 +4120,10 @@ static int decode_residual(H264Context *h, GetBitContext *gb, DCTELEM *block, in if(level_code > 5) suffix_length++; mask= -(level_code&1); - level[i]= (((2+level_code)>>1) ^ mask) - mask; - i++; + level[trailing_ones]= (((2+level_code)>>1) ^ mask) - mask; //remaining coefficients have suffix_length > 0 - for(;i