VP3: Do not ignore error from read_huffman_tree().

Originally committed as revision 17090 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Alex Converse 2009-02-09 01:39:33 +00:00
parent 16a59a7bb6
commit 00bbe27631
1 changed files with 10 additions and 5 deletions

View File

@ -2014,9 +2014,11 @@ static int read_huffman_tree(AVCodecContext *avctx, GetBitContext *gb)
} }
s->huff_code_size++; s->huff_code_size++;
s->hbits <<= 1; s->hbits <<= 1;
read_huffman_tree(avctx, gb); if (read_huffman_tree(avctx, gb))
return -1;
s->hbits |= 1; s->hbits |= 1;
read_huffman_tree(avctx, gb); if (read_huffman_tree(avctx, gb))
return -1;
s->hbits >>= 1; s->hbits >>= 1;
s->huff_code_size--; s->huff_code_size--;
} }
@ -2192,9 +2194,11 @@ static int theora_decode_tables(AVCodecContext *avctx, GetBitContext *gb)
s->huff_code_size = 1; s->huff_code_size = 1;
if (!get_bits1(gb)) { if (!get_bits1(gb)) {
s->hbits = 0; s->hbits = 0;
read_huffman_tree(avctx, gb); if(read_huffman_tree(avctx, gb))
return -1;
s->hbits = 1; s->hbits = 1;
read_huffman_tree(avctx, gb); if(read_huffman_tree(avctx, gb))
return -1;
} }
} }
@ -2250,7 +2254,8 @@ static int theora_decode_init(AVCodecContext *avctx)
// theora_decode_comments(avctx, gb); // theora_decode_comments(avctx, gb);
break; break;
case 0x82: case 0x82:
theora_decode_tables(avctx, &gb); if (theora_decode_tables(avctx, &gb))
return -1;
break; break;
default: default:
av_log(avctx, AV_LOG_ERROR, "Unknown Theora config packet: %d\n", ptype&~0x80); av_log(avctx, AV_LOG_ERROR, "Unknown Theora config packet: %d\n", ptype&~0x80);