libavcodec/wmaprodec.c:821: error: Uninitialized Value
  The value read from vals[_] was never initialized.

libavcodec/wmaprodec.c:821:17: 
819.             if (vals[i]) {
820.                 int sign = get_bits1(&s->gb) - 1;
821.                 ci->coeffs[cur_coeff] = (vals[i] ^ sign) - sign;
                     ^
822.                 num_zeros = 0;
823.             } else {

static int decode_coeffs(WMAProDecodeCtx *s, int c)
{
    int vlctable;
    VLC* vlc;
    WMAProChannelCtx* ci = &s->channel[c];
    int rl_mode = 0;
    int cur_coeff = 0;
    int num_zeros = 0;
    const uint16_t* run;
    const uint16_t* level;
    dprintf(s->avctx, "decode coefficients for channel %i\n", c);
    vlctable = get_bits1(&s->gb);
    vlc = &coef_vlc[vlctable];
    if (vlctable) {
        run = coef1_run;
        level = coef1_level;
    } else {
        run = coef0_run;
        level = coef0_level;
    }
    while (!rl_mode && cur_coeff + 3 < s->subframe_len) {
        int vals[4];
        int i;
        unsigned int idx;
        idx = get_vlc2(&s->gb, vec4_vlc.table, VLCBITS, VEC4MAXDEPTH);
        if (idx == HUFF_VEC4_SIZE - 1) {
            for (i = 0; i < 4; i += 2) {
                idx = get_vlc2(&s->gb, vec2_vlc.table, VLCBITS, VEC2MAXDEPTH);
                if (idx == HUFF_VEC2_SIZE - 1) {
                    vals[i] = get_vlc2(&s->gb, vec1_vlc.table, VLCBITS, VEC1MAXDEPTH);
                    if (vals[i] == HUFF_VEC1_SIZE - 1)
                        vals[i] += ff_wma_get_large_val(&s->gb);
                    vals[i+1] = get_vlc2(&s->gb, vec1_vlc.table, VLCBITS, VEC1MAXDEPTH);
                    if (vals[i+1] == HUFF_VEC1_SIZE - 1)
                        vals[i+1] += ff_wma_get_large_val(&s->gb);
                } else {
                    vals[i]   = symbol_to_vec2[idx] >> 4;
                    vals[i+1] = symbol_to_vec2[idx] & 0xF;
                }
            }
        } else {
            vals[0] =  symbol_to_vec4[idx] >> 12;
            vals[1] = (symbol_to_vec4[idx] >> 8) & 0xF;
            vals[2] = (symbol_to_vec4[idx] >> 4) & 0xF;
            vals[3] =  symbol_to_vec4[idx]       & 0xF;
        }
        for (i = 0; i < 4; i++) {
            if (vals[i]) {
                int sign = get_bits1(&s->gb) - 1;
                ci->coeffs[cur_coeff] = (vals[i] ^ sign) - sign;
                num_zeros = 0;
            } else {
                ci->coeffs[cur_coeff] = 0;
                rl_mode |= (++num_zeros > s->subframe_len >> 8);
            }
            ++cur_coeff;
        }
    }
    if (rl_mode) {
        memset(&ci->coeffs[cur_coeff], 0,
               sizeof(*ci->coeffs) * (s->subframe_len - cur_coeff));
        if (ff_wma_run_level_decode(s->avctx, &s->gb, vlc,
                                    level, run, 1, ci->coeffs,
                                    cur_coeff, s->subframe_len,
                                    s->subframe_len, s->esc_len, 0))
            return AVERROR_INVALIDDATA;
    }
    return 0;
}
['static int decode_coeffs(WMAProDecodeCtx *s, int c)\n{\n    int vlctable;\n    VLC* vlc;\n    WMAProChannelCtx* ci = &s->channel[c];\n    int rl_mode = 0;\n    int cur_coeff = 0;\n    int num_zeros = 0;\n    const uint16_t* run;\n    const uint16_t* level;\n    dprintf(s->avctx, "decode coefficients for channel %i\\n", c);\n    vlctable = get_bits1(&s->gb);\n    vlc = &coef_vlc[vlctable];\n    if (vlctable) {\n        run = coef1_run;\n        level = coef1_level;\n    } else {\n        run = coef0_run;\n        level = coef0_level;\n    }\n    while (!rl_mode && cur_coeff + 3 < s->subframe_len) {\n        int vals[4];\n        int i;\n        unsigned int idx;\n        idx = get_vlc2(&s->gb, vec4_vlc.table, VLCBITS, VEC4MAXDEPTH);\n        if (idx == HUFF_VEC4_SIZE - 1) {\n            for (i = 0; i < 4; i += 2) {\n                idx = get_vlc2(&s->gb, vec2_vlc.table, VLCBITS, VEC2MAXDEPTH);\n                if (idx == HUFF_VEC2_SIZE - 1) {\n                    vals[i] = get_vlc2(&s->gb, vec1_vlc.table, VLCBITS, VEC1MAXDEPTH);\n                    if (vals[i] == HUFF_VEC1_SIZE - 1)\n                        vals[i] += ff_wma_get_large_val(&s->gb);\n                    vals[i+1] = get_vlc2(&s->gb, vec1_vlc.table, VLCBITS, VEC1MAXDEPTH);\n                    if (vals[i+1] == HUFF_VEC1_SIZE - 1)\n                        vals[i+1] += ff_wma_get_large_val(&s->gb);\n                } else {\n                    vals[i]   = symbol_to_vec2[idx] >> 4;\n                    vals[i+1] = symbol_to_vec2[idx] & 0xF;\n                }\n            }\n        } else {\n            vals[0] =  symbol_to_vec4[idx] >> 12;\n            vals[1] = (symbol_to_vec4[idx] >> 8) & 0xF;\n            vals[2] = (symbol_to_vec4[idx] >> 4) & 0xF;\n            vals[3] =  symbol_to_vec4[idx]       & 0xF;\n        }\n        for (i = 0; i < 4; i++) {\n            if (vals[i]) {\n                int sign = get_bits1(&s->gb) - 1;\n                ci->coeffs[cur_coeff] = (vals[i] ^ sign) - sign;\n                num_zeros = 0;\n            } else {\n                ci->coeffs[cur_coeff] = 0;\n                rl_mode |= (++num_zeros > s->subframe_len >> 8);\n            }\n            ++cur_coeff;\n        }\n    }\n    if (rl_mode) {\n        memset(&ci->coeffs[cur_coeff], 0,\n               sizeof(*ci->coeffs) * (s->subframe_len - cur_coeff));\n        if (ff_wma_run_level_decode(s->avctx, &s->gb, vlc,\n                                    level, run, 1, ci->coeffs,\n                                    cur_coeff, s->subframe_len,\n                                    s->subframe_len, s->esc_len, 0))\n            return AVERROR_INVALIDDATA;\n    }\n    return 0;\n}']