wmalossless: Fix infinite loop.

Fixes more of Ticket1000

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2012-02-19 21:50:18 +01:00
parent 886b40b94a
commit f4f386dd00

View File

@ -713,8 +713,11 @@ static int decode_channel_residues(WmallDecodeCtx *s, int ch, int tile_size)
//av_log(0, 0, "%8d: ", num_logged_tiles++); //av_log(0, 0, "%8d: ", num_logged_tiles++);
for(; i < tile_size; i++) { for(; i < tile_size; i++) {
int quo = 0, rem, rem_bits, residue; int quo = 0, rem, rem_bits, residue;
while(get_bits1(&s->gb)) while(get_bits1(&s->gb)) {
quo++; quo++;
if (get_bits_left(&s->gb) <= 0)
return -1;
}
if(quo >= 32) if(quo >= 32)
quo += get_bits_long(&s->gb, get_bits(&s->gb, 5) + 1); quo += get_bits_long(&s->gb, get_bits(&s->gb, 5) + 1);