libavcodec/aaccoder.c:443: error: Uninitialized Value
  The value read from stackcb[_] was never initialized.

libavcodec/aaccoder.c:443:9: 
441.     start = 0;
442.     for (i = stack_len - 1; i >= 0; i--) {
443.         put_bits(&s->pb, 4, stackcb[i]);
             ^
444.         count = stackrun[i];
445.         memset(sce->zeroes + win*16 + start, !stackcb[i], count);

static void encode_window_bands_info(AACEncContext *s, SingleChannelElement *sce,
                                     int win, int group_len, const float lambda)
{
    BandCodingPath path[120][12];
    int w, swb, cb, start, start2, size;
    int i, j;
    const int max_sfb  = sce->ics.max_sfb;
    const int run_bits = sce->ics.num_windows == 1 ? 5 : 3;
    const int run_esc  = (1 << run_bits) - 1;
    int idx, ppos, count;
    int stackrun[120], stackcb[120], stack_len;
    float next_minrd = INFINITY;
    int next_mincb = 0;
    abs_pow34_v(s->scoefs, sce->coeffs, 1024);
    start = win*128;
    for (cb = 0; cb < 12; cb++) {
        path[0][cb].cost     = 0.0f;
        path[0][cb].prev_idx = -1;
        path[0][cb].run      = 0;
    }
    for (swb = 0; swb < max_sfb; swb++) {
        start2 = start;
        size = sce->ics.swb_sizes[swb];
        if (sce->zeroes[win*16 + swb]) {
            for (cb = 0; cb < 12; cb++) {
                path[swb+1][cb].prev_idx = cb;
                path[swb+1][cb].cost     = path[swb][cb].cost;
                path[swb+1][cb].run      = path[swb][cb].run + 1;
            }
        } else {
            float minrd = next_minrd;
            int mincb = next_mincb;
            next_minrd = INFINITY;
            next_mincb = 0;
            for (cb = 0; cb < 12; cb++) {
                float cost_stay_here, cost_get_here;
                float rd = 0.0f;
                for (w = 0; w < group_len; w++) {
                    FFPsyBand *band = &s->psy.psy_bands[s->cur_channel*PSY_MAX_BANDS+(win+w)*16+swb];
                    rd += quantize_band_cost(s, sce->coeffs + start + w*128,
                                             s->scoefs + start + w*128, size,
                                             sce->sf_idx[(win+w)*16+swb], cb,
                                             lambda / band->threshold, INFINITY, NULL);
                }
                cost_stay_here = path[swb][cb].cost + rd;
                cost_get_here  = minrd              + rd + run_bits + 4;
                if (   run_value_bits[sce->ics.num_windows == 8][path[swb][cb].run]
                    != run_value_bits[sce->ics.num_windows == 8][path[swb][cb].run+1])
                    cost_stay_here += run_bits;
                if (cost_get_here < cost_stay_here) {
                    path[swb+1][cb].prev_idx = mincb;
                    path[swb+1][cb].cost     = cost_get_here;
                    path[swb+1][cb].run      = 1;
                } else {
                    path[swb+1][cb].prev_idx = cb;
                    path[swb+1][cb].cost     = cost_stay_here;
                    path[swb+1][cb].run      = path[swb][cb].run + 1;
                }
                if (path[swb+1][cb].cost < next_minrd) {
                    next_minrd = path[swb+1][cb].cost;
                    next_mincb = cb;
                }
            }
        }
        start += sce->ics.swb_sizes[swb];
    }
    stack_len = 0;
    idx       = 0;
    for (cb = 1; cb < 12; cb++)
        if (path[max_sfb][cb].cost < path[max_sfb][idx].cost)
            idx = cb;
    ppos = max_sfb;
    while (ppos > 0) {
        cb = idx;
        stackrun[stack_len] = path[ppos][cb].run;
        stackcb [stack_len] = cb;
        idx = path[ppos-path[ppos][cb].run+1][cb].prev_idx;
        ppos -= path[ppos][cb].run;
        stack_len++;
    }
    start = 0;
    for (i = stack_len - 1; i >= 0; i--) {
        put_bits(&s->pb, 4, stackcb[i]);
        count = stackrun[i];
        memset(sce->zeroes + win*16 + start, !stackcb[i], count);
        for (j = 0; j < count; j++) {
            sce->band_type[win*16 + start] =  stackcb[i];
            start++;
        }
        while (count >= run_esc) {
            put_bits(&s->pb, run_bits, run_esc);
            count -= run_esc;
        }
        put_bits(&s->pb, run_bits, count);
    }
}
['static void encode_window_bands_info(AACEncContext *s, SingleChannelElement *sce,\n                                     int win, int group_len, const float lambda)\n{\n    BandCodingPath path[120][12];\n    int w, swb, cb, start, start2, size;\n    int i, j;\n    const int max_sfb  = sce->ics.max_sfb;\n    const int run_bits = sce->ics.num_windows == 1 ? 5 : 3;\n    const int run_esc  = (1 << run_bits) - 1;\n    int idx, ppos, count;\n    int stackrun[120], stackcb[120], stack_len;\n    float next_minrd = INFINITY;\n    int next_mincb = 0;\n    abs_pow34_v(s->scoefs, sce->coeffs, 1024);\n    start = win*128;\n    for (cb = 0; cb < 12; cb++) {\n        path[0][cb].cost     = 0.0f;\n        path[0][cb].prev_idx = -1;\n        path[0][cb].run      = 0;\n    }\n    for (swb = 0; swb < max_sfb; swb++) {\n        start2 = start;\n        size = sce->ics.swb_sizes[swb];\n        if (sce->zeroes[win*16 + swb]) {\n            for (cb = 0; cb < 12; cb++) {\n                path[swb+1][cb].prev_idx = cb;\n                path[swb+1][cb].cost     = path[swb][cb].cost;\n                path[swb+1][cb].run      = path[swb][cb].run + 1;\n            }\n        } else {\n            float minrd = next_minrd;\n            int mincb = next_mincb;\n            next_minrd = INFINITY;\n            next_mincb = 0;\n            for (cb = 0; cb < 12; cb++) {\n                float cost_stay_here, cost_get_here;\n                float rd = 0.0f;\n                for (w = 0; w < group_len; w++) {\n                    FFPsyBand *band = &s->psy.psy_bands[s->cur_channel*PSY_MAX_BANDS+(win+w)*16+swb];\n                    rd += quantize_band_cost(s, sce->coeffs + start + w*128,\n                                             s->scoefs + start + w*128, size,\n                                             sce->sf_idx[(win+w)*16+swb], cb,\n                                             lambda / band->threshold, INFINITY, NULL);\n                }\n                cost_stay_here = path[swb][cb].cost + rd;\n                cost_get_here  = minrd              + rd + run_bits + 4;\n                if (   run_value_bits[sce->ics.num_windows == 8][path[swb][cb].run]\n                    != run_value_bits[sce->ics.num_windows == 8][path[swb][cb].run+1])\n                    cost_stay_here += run_bits;\n                if (cost_get_here < cost_stay_here) {\n                    path[swb+1][cb].prev_idx = mincb;\n                    path[swb+1][cb].cost     = cost_get_here;\n                    path[swb+1][cb].run      = 1;\n                } else {\n                    path[swb+1][cb].prev_idx = cb;\n                    path[swb+1][cb].cost     = cost_stay_here;\n                    path[swb+1][cb].run      = path[swb][cb].run + 1;\n                }\n                if (path[swb+1][cb].cost < next_minrd) {\n                    next_minrd = path[swb+1][cb].cost;\n                    next_mincb = cb;\n                }\n            }\n        }\n        start += sce->ics.swb_sizes[swb];\n    }\n    stack_len = 0;\n    idx       = 0;\n    for (cb = 1; cb < 12; cb++)\n        if (path[max_sfb][cb].cost < path[max_sfb][idx].cost)\n            idx = cb;\n    ppos = max_sfb;\n    while (ppos > 0) {\n        cb = idx;\n        stackrun[stack_len] = path[ppos][cb].run;\n        stackcb [stack_len] = cb;\n        idx = path[ppos-path[ppos][cb].run+1][cb].prev_idx;\n        ppos -= path[ppos][cb].run;\n        stack_len++;\n    }\n    start = 0;\n    for (i = stack_len - 1; i >= 0; i--) {\n        put_bits(&s->pb, 4, stackcb[i]);\n        count = stackrun[i];\n        memset(sce->zeroes + win*16 + start, !stackcb[i], count);\n        for (j = 0; j < count; j++) {\n            sce->band_type[win*16 + start] =  stackcb[i];\n            start++;\n        }\n        while (count >= run_esc) {\n            put_bits(&s->pb, run_bits, run_esc);\n            count -= run_esc;\n        }\n        put_bits(&s->pb, run_bits, count);\n    }\n}']