# HG changeset patch # User ramiro # Date 1209186216 0 # Node ID 0b8ef15fa20e3eb5bbab36f79f35c74338170a55 # Parent 75b2158c583a96e795bf5c43c4b659f1a0156bb0 get_vlc2() only gets up to three levels in the tables. The last codes weren't being read properly. diff -r 75b2158c583a -r 0b8ef15fa20e mimic.c --- a/mimic.c Sat Apr 26 04:14:33 2008 +0000 +++ b/mimic.c Sat Apr 26 05:03:36 2008 +0000 @@ -110,7 +110,7 @@ ctx->prev_index = 0; ctx->cur_index = 15; - if(init_vlc(&ctx->vlc, 8, sizeof(huffbits)/sizeof(huffbits[0]), + if(init_vlc(&ctx->vlc, 11, sizeof(huffbits)/sizeof(huffbits[0]), huffbits, 1, 1, huffcodes, 4, 4, 0)) { av_log(avctx, AV_LOG_ERROR, "error initializing vlc table\n"); return -1; @@ -172,7 +172,7 @@ int value; int coeff; - vlc = get_vlc2(&ctx->gb, ctx->vlc.table, ctx->vlc.bits, 4); + vlc = get_vlc2(&ctx->gb, ctx->vlc.table, ctx->vlc.bits, 3); if(!vlc) /* end-of-block code */ return 1; if(vlc == -1)