mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
smacker: fix smacker_decode_header_tree() empty vlc table init
Fixes Ticket1858 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
e6305f7631
commit
48cbdaea15
@ -207,27 +207,33 @@ static int smacker_decode_header_tree(SmackVContext *smk, GetBitContext *gb, int
|
||||
if(get_bits1(gb)) {
|
||||
smacker_decode_tree(gb, &tmp1, 0, 0);
|
||||
skip_bits1(gb);
|
||||
res = init_vlc(&vlc[0], SMKTREE_BITS, tmp1.length,
|
||||
tmp1.lengths, sizeof(int), sizeof(int),
|
||||
tmp1.bits, sizeof(uint32_t), sizeof(uint32_t), INIT_VLC_LE);
|
||||
if(res < 0) {
|
||||
av_log(smk->avctx, AV_LOG_ERROR, "Cannot build VLC table\n");
|
||||
return AVERROR_INVALIDDATA;
|
||||
if(tmp1.current > 1) {
|
||||
res = init_vlc(&vlc[0], SMKTREE_BITS, tmp1.length,
|
||||
tmp1.lengths, sizeof(int), sizeof(int),
|
||||
tmp1.bits, sizeof(uint32_t), sizeof(uint32_t), INIT_VLC_LE);
|
||||
if(res < 0) {
|
||||
av_log(smk->avctx, AV_LOG_ERROR, "Cannot build VLC table\n");
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
}
|
||||
if (!vlc[0].table) {
|
||||
av_log(smk->avctx, AV_LOG_ERROR, "Skipping low bytes tree\n");
|
||||
}
|
||||
if(get_bits1(gb)){
|
||||
smacker_decode_tree(gb, &tmp2, 0, 0);
|
||||
skip_bits1(gb);
|
||||
res = init_vlc(&vlc[1], SMKTREE_BITS, tmp2.length,
|
||||
tmp2.lengths, sizeof(int), sizeof(int),
|
||||
tmp2.bits, sizeof(uint32_t), sizeof(uint32_t), INIT_VLC_LE);
|
||||
if(res < 0) {
|
||||
av_log(smk->avctx, AV_LOG_ERROR, "Cannot build VLC table\n");
|
||||
return AVERROR_INVALIDDATA;
|
||||
if(tmp2.current > 1) {
|
||||
res = init_vlc(&vlc[1], SMKTREE_BITS, tmp2.length,
|
||||
tmp2.lengths, sizeof(int), sizeof(int),
|
||||
tmp2.bits, sizeof(uint32_t), sizeof(uint32_t), INIT_VLC_LE);
|
||||
if(res < 0) {
|
||||
av_log(smk->avctx, AV_LOG_ERROR, "Cannot build VLC table\n");
|
||||
return AVERROR_INVALIDDATA;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
}
|
||||
if (!vlc[1].table) {
|
||||
av_log(smk->avctx, AV_LOG_ERROR, "Skipping high bytes tree\n");
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user