libavcodec/eatgv.c:192: error: Uninitialized Value
  The value read from tmp[_] was never initialized.

libavcodec/eatgv.c:192:13: 
190.             tmp[j] = get_bits(&gb, 8);
191.         for(j=0; j<16; j++)
192.             s->block_codebook[i][15-j] = tmp[get_bits(&gb, 2)];
                 ^
193.     }
194. 

static int tgv_decode_inter(TgvContext * s, const uint8_t *buf, const uint8_t *buf_end){
    unsigned char *frame0_end = s->last_frame.data[0] + s->avctx->width*s->last_frame.linesize[0];
    int num_mvs;
    int num_blocks_raw;
    int num_blocks_packed;
    int vector_bits;
    int i,j,x,y;
    GetBitContext gb;
    int mvbits;
    const unsigned char *blocks_raw;
    if(buf+12>buf_end)
        return -1;
    num_mvs           = AV_RL16(&buf[0]);
    num_blocks_raw    = AV_RL16(&buf[2]);
    num_blocks_packed = AV_RL16(&buf[4]);
    vector_bits       = AV_RL16(&buf[6]);
    buf += 12;
    if (num_mvs > s->num_mvs) {
        s->mv_codebook = av_realloc(s->mv_codebook, num_mvs*2*sizeof(int));
        s->num_mvs = num_mvs;
    }
    if (num_blocks_packed > s->num_blocks_packed) {
        s->block_codebook = av_realloc(s->block_codebook, num_blocks_packed*16*sizeof(unsigned char));
        s->num_blocks_packed = num_blocks_packed;
    }
    mvbits = (num_mvs*2*10+31) & ~31;
    if (buf+(mvbits>>3)+16*num_blocks_raw+8*num_blocks_packed>buf_end)
        return -1;
    init_get_bits(&gb, buf, mvbits);
    for (i=0; i<num_mvs; i++) {
        s->mv_codebook[i][0] = get_sbits(&gb, 10);
        s->mv_codebook[i][1] = get_sbits(&gb, 10);
    }
    buf += mvbits>>3;
    blocks_raw = buf;
    buf += num_blocks_raw*16;
    init_get_bits(&gb, buf, (buf_end-buf)<<3);
    for (i=0; i<num_blocks_packed; i++) {
        int tmp[4];
        for(j=0; j<4; j++)
            tmp[j] = get_bits(&gb, 8);
        for(j=0; j<16; j++)
            s->block_codebook[i][15-j] = tmp[get_bits(&gb, 2)];
    }
    for(y=0; y<s->avctx->height/4; y++)
    for(x=0; x<s->avctx->width/4; x++) {
        unsigned int vector = get_bits(&gb, vector_bits);
        const unsigned char *src;
        int src_stride;
        if (vector < num_mvs) {
            src = s->last_frame.data[0] +
                  (y*4 + s->mv_codebook[vector][1])*s->last_frame.linesize[0] +
                   x*4 + s->mv_codebook[vector][0];
            src_stride = s->last_frame.linesize[0];
            if (src+3*src_stride+3>=frame0_end)
                continue;
        }else{
            int offset = vector - num_mvs;
            if (offset<num_blocks_raw)
                src = blocks_raw + 16*offset;
            else if (offset-num_blocks_raw<num_blocks_packed)
                src = s->block_codebook[offset-num_blocks_raw];
            else
                continue;
            src_stride = 4;
        }
        for(j=0; j<4; j++)
        for(i=0; i<4; i++)
            s->frame.data[0][ (y*4+j)*s->frame.linesize[0] + (x*4+i)  ] =
               src[j*src_stride + i];
    }
    return 0;
}
['static int tgv_decode_inter(TgvContext * s, const uint8_t *buf, const uint8_t *buf_end){\n    unsigned char *frame0_end = s->last_frame.data[0] + s->avctx->width*s->last_frame.linesize[0];\n    int num_mvs;\n    int num_blocks_raw;\n    int num_blocks_packed;\n    int vector_bits;\n    int i,j,x,y;\n    GetBitContext gb;\n    int mvbits;\n    const unsigned char *blocks_raw;\n    if(buf+12>buf_end)\n        return -1;\n    num_mvs           = AV_RL16(&buf[0]);\n    num_blocks_raw    = AV_RL16(&buf[2]);\n    num_blocks_packed = AV_RL16(&buf[4]);\n    vector_bits       = AV_RL16(&buf[6]);\n    buf += 12;\n    if (num_mvs > s->num_mvs) {\n        s->mv_codebook = av_realloc(s->mv_codebook, num_mvs*2*sizeof(int));\n        s->num_mvs = num_mvs;\n    }\n    if (num_blocks_packed > s->num_blocks_packed) {\n        s->block_codebook = av_realloc(s->block_codebook, num_blocks_packed*16*sizeof(unsigned char));\n        s->num_blocks_packed = num_blocks_packed;\n    }\n    mvbits = (num_mvs*2*10+31) & ~31;\n    if (buf+(mvbits>>3)+16*num_blocks_raw+8*num_blocks_packed>buf_end)\n        return -1;\n    init_get_bits(&gb, buf, mvbits);\n    for (i=0; i<num_mvs; i++) {\n        s->mv_codebook[i][0] = get_sbits(&gb, 10);\n        s->mv_codebook[i][1] = get_sbits(&gb, 10);\n    }\n    buf += mvbits>>3;\n    blocks_raw = buf;\n    buf += num_blocks_raw*16;\n    init_get_bits(&gb, buf, (buf_end-buf)<<3);\n    for (i=0; i<num_blocks_packed; i++) {\n        int tmp[4];\n        for(j=0; j<4; j++)\n            tmp[j] = get_bits(&gb, 8);\n        for(j=0; j<16; j++)\n            s->block_codebook[i][15-j] = tmp[get_bits(&gb, 2)];\n    }\n    for(y=0; y<s->avctx->height/4; y++)\n    for(x=0; x<s->avctx->width/4; x++) {\n        unsigned int vector = get_bits(&gb, vector_bits);\n        const unsigned char *src;\n        int src_stride;\n        if (vector < num_mvs) {\n            src = s->last_frame.data[0] +\n                  (y*4 + s->mv_codebook[vector][1])*s->last_frame.linesize[0] +\n                   x*4 + s->mv_codebook[vector][0];\n            src_stride = s->last_frame.linesize[0];\n            if (src+3*src_stride+3>=frame0_end)\n                continue;\n        }else{\n            int offset = vector - num_mvs;\n            if (offset<num_blocks_raw)\n                src = blocks_raw + 16*offset;\n            else if (offset-num_blocks_raw<num_blocks_packed)\n                src = s->block_codebook[offset-num_blocks_raw];\n            else\n                continue;\n            src_stride = 4;\n        }\n        for(j=0; j<4; j++)\n        for(i=0; i<4; i++)\n            s->frame.data[0][ (y*4+j)*s->frame.linesize[0] + (x*4+i)  ] =\n               src[j*src_stride + i];\n    }\n    return 0;\n}']