Merge remote-tracking branch 'qatar/master'

* qatar/master:
  webp: add a special case for a huffman table with only 1 symbol

Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2013-12-06 14:13:19 +01:00
commit 82c7d704fd
1 changed files with 17 additions and 1 deletions

View File

@ -277,10 +277,26 @@ static int huff_reader_get_symbol(HuffReader *r, GetBitContext *gb)
static int huff_reader_build_canonical(HuffReader *r, int *code_lengths,
int alphabet_size)
{
int len, sym, code, ret;
int len = 0, sym, code = 0, ret;
int max_code_length = 0;
uint16_t *codes;
/* special-case 1 symbol since the vlc reader cannot handle it */
for (sym = 0; sym < alphabet_size; sym++) {
if (code_lengths[sym] > 0) {
len++;
code = sym;
if (len > 1)
break;
}
}
if (len == 1) {
r->nb_symbols = 1;
r->simple_symbols[0] = code;
r->simple = 1;
return 0;
}
for (sym = 0; sym < alphabet_size; sym++)
max_code_length = FFMAX(max_code_length, code_lengths[sym]);