|
|
|
@ -34,6 +34,7 @@ |
|
|
|
|
#include "thread.h" |
|
|
|
|
|
|
|
|
|
#define MIMIC_HEADER_SIZE 20 |
|
|
|
|
#define MIMIC_VLC_BITS 11 |
|
|
|
|
|
|
|
|
|
typedef struct MimicContext { |
|
|
|
|
AVCodecContext *avctx; |
|
|
|
@ -141,7 +142,7 @@ static av_cold int mimic_decode_init(AVCodecContext *avctx) |
|
|
|
|
ctx->prev_index = 0; |
|
|
|
|
ctx->cur_index = 15; |
|
|
|
|
|
|
|
|
|
if ((ret = init_vlc(&ctx->vlc, 11, FF_ARRAY_ELEMS(huffbits), |
|
|
|
|
if ((ret = init_vlc(&ctx->vlc, MIMIC_VLC_BITS, FF_ARRAY_ELEMS(huffbits), |
|
|
|
|
huffbits, 1, 1, huffcodes, 4, 4, 0)) < 0) { |
|
|
|
|
av_log(avctx, AV_LOG_ERROR, "error initializing vlc table\n"); |
|
|
|
|
return ret; |
|
|
|
@ -239,7 +240,7 @@ static int vlc_decode_block(MimicContext *ctx, int num_coeffs, int qscale) |
|
|
|
|
int value; |
|
|
|
|
int coeff; |
|
|
|
|
|
|
|
|
|
vlc = get_vlc2(&ctx->gb, ctx->vlc.table, ctx->vlc.bits, 3); |
|
|
|
|
vlc = get_vlc2(&ctx->gb, ctx->vlc.table, MIMIC_VLC_BITS, 3); |
|
|
|
|
if (!vlc) /* end-of-block code */ |
|
|
|
|
return 0; |
|
|
|
|
if (vlc == -1) |
|
|
|
|