libavcodec/ra144enc.c:387: error: Uninitialized Value
  The value read from zero[_] was never initialized.

libavcodec/ra144enc.c:387:17: 
385.                    (1/4096.0);
386.             for (i = 0; i < BLOCKSIZE; i++) {
387.                 data[i] = zero[i] + g[0] * cba[i] + g[1] * cb1[i] +
                     ^
388.                           g[2] * cb2[i];
389.                 error += (data[i] - sblock_data[i]) *

static void ra144_encode_subblock(RA144Context *ractx,
                                  const int16_t *sblock_data,
                                  const int16_t *lpc_coefs, unsigned int rms,
                                  PutBitContext *pb)
{
    float data[BLOCKSIZE], work[LPC_ORDER + BLOCKSIZE];
    float coefs[LPC_ORDER];
    float zero[BLOCKSIZE], cba[BLOCKSIZE], cb1[BLOCKSIZE], cb2[BLOCKSIZE];
    int16_t cba_vect[BLOCKSIZE];
    int cba_idx, cb1_idx, cb2_idx, gain;
    int i, n, m[3];
    float g[3];
    float error, best_error;
    for (i = 0; i < LPC_ORDER; i++) {
        work[i] = ractx->curr_sblock[BLOCKSIZE + i];
        coefs[i] = lpc_coefs[i] * (1/4096.0);
    }
    memset(data, 0, sizeof(data));
    ff_celp_lp_synthesis_filterf(work + LPC_ORDER, coefs, data, BLOCKSIZE,
                                 LPC_ORDER);
    for (i = 0; i < BLOCKSIZE; i++) {
        zero[i] = work[LPC_ORDER + i];
        data[i] = sblock_data[i] - zero[i];
    }
    memset(work, 0, LPC_ORDER * sizeof(*work));
    cba_idx = adaptive_cb_search(ractx->adapt_cb, work + LPC_ORDER, coefs,
                                 data);
    if (cba_idx) {
        memcpy(cba, work + LPC_ORDER, sizeof(cba));
        ff_copy_and_dup(cba_vect, ractx->adapt_cb, cba_idx + BLOCKSIZE / 2 - 1);
        m[0] = (ff_irms(cba_vect) * rms) >> 12;
    }
    fixed_cb_search(work + LPC_ORDER, coefs, data, cba_idx, &cb1_idx, &cb2_idx);
    for (i = 0; i < BLOCKSIZE; i++) {
        cb1[i] = ff_cb1_vects[cb1_idx][i];
        cb2[i] = ff_cb2_vects[cb2_idx][i];
    }
    ff_celp_lp_synthesis_filterf(work + LPC_ORDER, coefs, cb1, BLOCKSIZE,
                                 LPC_ORDER);
    memcpy(cb1, work + LPC_ORDER, sizeof(cb1));
    m[1] = (ff_cb1_base[cb1_idx] * rms) >> 8;
    ff_celp_lp_synthesis_filterf(work + LPC_ORDER, coefs, cb2, BLOCKSIZE,
                                 LPC_ORDER);
    memcpy(cb2, work + LPC_ORDER, sizeof(cb2));
    m[2] = (ff_cb2_base[cb2_idx] * rms) >> 8;
    best_error = FLT_MAX;
    gain = 0;
    for (n = 0; n < 256; n++) {
        g[1] = ((ff_gain_val_tab[n][1] * m[1]) >> ff_gain_exp_tab[n]) *
               (1/4096.0);
        g[2] = ((ff_gain_val_tab[n][2] * m[2]) >> ff_gain_exp_tab[n]) *
               (1/4096.0);
        error = 0;
        if (cba_idx) {
            g[0] = ((ff_gain_val_tab[n][0] * m[0]) >> ff_gain_exp_tab[n]) *
                   (1/4096.0);
            for (i = 0; i < BLOCKSIZE; i++) {
                data[i] = zero[i] + g[0] * cba[i] + g[1] * cb1[i] +
                          g[2] * cb2[i];
                error += (data[i] - sblock_data[i]) *
                         (data[i] - sblock_data[i]);
            }
        } else {
            for (i = 0; i < BLOCKSIZE; i++) {
                data[i] = zero[i] + g[1] * cb1[i] + g[2] * cb2[i];
                error += (data[i] - sblock_data[i]) *
                         (data[i] - sblock_data[i]);
            }
        }
        if (error < best_error) {
            best_error = error;
            gain = n;
        }
    }
    put_bits(pb, 7, cba_idx);
    put_bits(pb, 8, gain);
    put_bits(pb, 7, cb1_idx);
    put_bits(pb, 7, cb2_idx);
    ff_subblock_synthesis(ractx, lpc_coefs, cba_idx, cb1_idx, cb2_idx, rms,
                          gain);
}
['static void ra144_encode_subblock(RA144Context *ractx,\n                                  const int16_t *sblock_data,\n                                  const int16_t *lpc_coefs, unsigned int rms,\n                                  PutBitContext *pb)\n{\n    float data[BLOCKSIZE], work[LPC_ORDER + BLOCKSIZE];\n    float coefs[LPC_ORDER];\n    float zero[BLOCKSIZE], cba[BLOCKSIZE], cb1[BLOCKSIZE], cb2[BLOCKSIZE];\n    int16_t cba_vect[BLOCKSIZE];\n    int cba_idx, cb1_idx, cb2_idx, gain;\n    int i, n, m[3];\n    float g[3];\n    float error, best_error;\n    for (i = 0; i < LPC_ORDER; i++) {\n        work[i] = ractx->curr_sblock[BLOCKSIZE + i];\n        coefs[i] = lpc_coefs[i] * (1/4096.0);\n    }\n    memset(data, 0, sizeof(data));\n    ff_celp_lp_synthesis_filterf(work + LPC_ORDER, coefs, data, BLOCKSIZE,\n                                 LPC_ORDER);\n    for (i = 0; i < BLOCKSIZE; i++) {\n        zero[i] = work[LPC_ORDER + i];\n        data[i] = sblock_data[i] - zero[i];\n    }\n    memset(work, 0, LPC_ORDER * sizeof(*work));\n    cba_idx = adaptive_cb_search(ractx->adapt_cb, work + LPC_ORDER, coefs,\n                                 data);\n    if (cba_idx) {\n        memcpy(cba, work + LPC_ORDER, sizeof(cba));\n        ff_copy_and_dup(cba_vect, ractx->adapt_cb, cba_idx + BLOCKSIZE / 2 - 1);\n        m[0] = (ff_irms(cba_vect) * rms) >> 12;\n    }\n    fixed_cb_search(work + LPC_ORDER, coefs, data, cba_idx, &cb1_idx, &cb2_idx);\n    for (i = 0; i < BLOCKSIZE; i++) {\n        cb1[i] = ff_cb1_vects[cb1_idx][i];\n        cb2[i] = ff_cb2_vects[cb2_idx][i];\n    }\n    ff_celp_lp_synthesis_filterf(work + LPC_ORDER, coefs, cb1, BLOCKSIZE,\n                                 LPC_ORDER);\n    memcpy(cb1, work + LPC_ORDER, sizeof(cb1));\n    m[1] = (ff_cb1_base[cb1_idx] * rms) >> 8;\n    ff_celp_lp_synthesis_filterf(work + LPC_ORDER, coefs, cb2, BLOCKSIZE,\n                                 LPC_ORDER);\n    memcpy(cb2, work + LPC_ORDER, sizeof(cb2));\n    m[2] = (ff_cb2_base[cb2_idx] * rms) >> 8;\n    best_error = FLT_MAX;\n    gain = 0;\n    for (n = 0; n < 256; n++) {\n        g[1] = ((ff_gain_val_tab[n][1] * m[1]) >> ff_gain_exp_tab[n]) *\n               (1/4096.0);\n        g[2] = ((ff_gain_val_tab[n][2] * m[2]) >> ff_gain_exp_tab[n]) *\n               (1/4096.0);\n        error = 0;\n        if (cba_idx) {\n            g[0] = ((ff_gain_val_tab[n][0] * m[0]) >> ff_gain_exp_tab[n]) *\n                   (1/4096.0);\n            for (i = 0; i < BLOCKSIZE; i++) {\n                data[i] = zero[i] + g[0] * cba[i] + g[1] * cb1[i] +\n                          g[2] * cb2[i];\n                error += (data[i] - sblock_data[i]) *\n                         (data[i] - sblock_data[i]);\n            }\n        } else {\n            for (i = 0; i < BLOCKSIZE; i++) {\n                data[i] = zero[i] + g[1] * cb1[i] + g[2] * cb2[i];\n                error += (data[i] - sblock_data[i]) *\n                         (data[i] - sblock_data[i]);\n            }\n        }\n        if (error < best_error) {\n            best_error = error;\n            gain = n;\n        }\n    }\n    put_bits(pb, 7, cba_idx);\n    put_bits(pb, 8, gain);\n    put_bits(pb, 7, cb1_idx);\n    put_bits(pb, 7, cb2_idx);\n    ff_subblock_synthesis(ractx, lpc_coefs, cba_idx, cb1_idx, cb2_idx, rms,\n                          gain);\n}']