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:
commit
82c7d704fd
@ -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,
|
static int huff_reader_build_canonical(HuffReader *r, int *code_lengths,
|
||||||
int alphabet_size)
|
int alphabet_size)
|
||||||
{
|
{
|
||||||
int len, sym, code, ret;
|
int len = 0, sym, code = 0, ret;
|
||||||
int max_code_length = 0;
|
int max_code_length = 0;
|
||||||
uint16_t *codes;
|
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++)
|
for (sym = 0; sym < alphabet_size; sym++)
|
||||||
max_code_length = FFMAX(max_code_length, code_lengths[sym]);
|
max_code_length = FFMAX(max_code_length, code_lengths[sym]);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user