summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/svq1dec.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/libavcodec/svq1dec.c b/libavcodec/svq1dec.c
index 0f4205ec1f..078ff2c15e 100644
--- a/libavcodec/svq1dec.c
+++ b/libavcodec/svq1dec.c
@@ -768,6 +768,7 @@ static av_cold int svq1_decode_init(AVCodecContext *avctx)
{
MpegEncContext *s = avctx->priv_data;
int i;
+ int offset = 0;
MPV_decode_defaults(s);
@@ -789,12 +790,20 @@ static av_cold int svq1_decode_init(AVCodecContext *avctx)
&mvtab[0][0], 2, 1, 176);
for (i = 0; i < 6; i++) {
+ static const uint8_t sizes[2][6] = {{14, 10, 14, 18, 16, 18}, {10, 10, 14, 14, 14, 16}};
+ static VLC_TYPE table[168][2];
+ svq1_intra_multistage[i].table = &table[offset];
+ svq1_intra_multistage[i].table_allocated = sizes[0][i];
+ offset += sizes[0][i];
init_vlc(&svq1_intra_multistage[i], 3, 8,
&ff_svq1_intra_multistage_vlc[i][0][1], 2, 1,
- &ff_svq1_intra_multistage_vlc[i][0][0], 2, 1, INIT_VLC_USE_STATIC);
+ &ff_svq1_intra_multistage_vlc[i][0][0], 2, 1, INIT_VLC_USE_NEW_STATIC);
+ svq1_inter_multistage[i].table = &table[offset];
+ svq1_inter_multistage[i].table_allocated = sizes[1][i];
+ offset += sizes[1][i];
init_vlc(&svq1_inter_multistage[i], 3, 8,
&ff_svq1_inter_multistage_vlc[i][0][1], 2, 1,
- &ff_svq1_inter_multistage_vlc[i][0][0], 2, 1, INIT_VLC_USE_STATIC);
+ &ff_svq1_inter_multistage_vlc[i][0][0], 2, 1, INIT_VLC_USE_NEW_STATIC);
}
INIT_VLC_STATIC(&svq1_intra_mean, 8, 256,