libavcodec/sipr16k.c:256: error: Buffer Overrun L1
  Offset: [5, 16] (⇐ [0, 1] + [5, 15]) Size: 2 by call to `ff_celp_lp_synthesis_filterf`.

libavcodec/sipr16k.c:177:1: Array declaration
175. #define DIVIDE_BY_3(x) ((x) * 10923 >> 15)
176. 
177. void ff_sipr_decode_frame_16k(SiprContext *ctx, SiprParameters *params,
     ^
178.                               float *out_data)
179. {

libavcodec/sipr16k.c:256:9: Call
254.                                 gain_code, L_SUBFR_16k);
255. 
256.         ff_celp_lp_synthesis_filterf(synth + i_subfr, Az[i],
             ^
257.                                      &excitation[i_subfr], L_SUBFR_16k,
258.                                      LP_FILTER_ORDER_16k);

libavcodec/celp_filters.c:83:1: <Offset trace>
81. }
82. 
83. void ff_celp_lp_synthesis_filterf(float *out, const float *filter_coeffs,
    ^
84.                                   const float* in, int buffer_length,
85.                                   int filter_length)

libavcodec/celp_filters.c:83:1: Parameter `filter_length`
  81. }
  82. 
  83. void ff_celp_lp_synthesis_filterf(float *out, const float *filter_coeffs,
      ^
  84.                                   const float* in, int buffer_length,
  85.                                   int filter_length)

libavcodec/celp_filters.c:83:1: <Length trace>
81. }
82. 
83. void ff_celp_lp_synthesis_filterf(float *out, const float *filter_coeffs,
    ^
84.                                   const float* in, int buffer_length,
85.                                   int filter_length)

libavcodec/celp_filters.c:83:1: Parameter `*filter_coeffs`
  81. }
  82. 
  83. void ff_celp_lp_synthesis_filterf(float *out, const float *filter_coeffs,
      ^
  84.                                   const float* in, int buffer_length,
  85.                                   int filter_length)

libavcodec/celp_filters.c:147:19: Array access: Offset: [5, 16] (⇐ [0, 1] + [5, 15]) Size: 2 by call to `ff_celp_lp_synthesis_filterf` 
  145.             old_out2 = out[-i-1];
  146. 
  147.             val = filter_coeffs[i];
                         ^
  148. 
  149.             out0 -= val * old_out2;

void ff_celp_lp_synthesis_filterf(float *out, const float *filter_coeffs,
                                  const float* in, int buffer_length,
                                  int filter_length)
{
    int i,n;
#if 0
    for (n = 0; n < buffer_length; n++) {
        out[n] = in[n];
        for (i = 1; i <= filter_length; i++)
            out[n] -= filter_coeffs[i-1] * out[n-i];
    }
#else
    float out0, out1, out2, out3;
    float old_out0, old_out1, old_out2, old_out3;
    float a,b,c;
    a = filter_coeffs[0];
    b = filter_coeffs[1];
    c = filter_coeffs[2];
    b -= filter_coeffs[0] * filter_coeffs[0];
    c -= filter_coeffs[1] * filter_coeffs[0];
    c -= filter_coeffs[0] * b;
    old_out0 = out[-4];
    old_out1 = out[-3];
    old_out2 = out[-2];
    old_out3 = out[-1];
    for (n = 0; n <= buffer_length - 4; n+=4) {
        float tmp0,tmp1,tmp2;
        float val;
        out0 = in[0];
        out1 = in[1];
        out2 = in[2];
        out3 = in[3];
        out0 -= filter_coeffs[2] * old_out1;
        out1 -= filter_coeffs[2] * old_out2;
        out2 -= filter_coeffs[2] * old_out3;
        out0 -= filter_coeffs[1] * old_out2;
        out1 -= filter_coeffs[1] * old_out3;
        out0 -= filter_coeffs[0] * old_out3;
        val = filter_coeffs[3];
        out0 -= val * old_out0;
        out1 -= val * old_out1;
        out2 -= val * old_out2;
        out3 -= val * old_out3;
        for (i = 5; i < filter_length; i += 2) {
            old_out3 = out[-i];
            val = filter_coeffs[i-1];
            out0 -= val * old_out3;
            out1 -= val * old_out0;
            out2 -= val * old_out1;
            out3 -= val * old_out2;
            old_out2 = out[-i-1];
            val = filter_coeffs[i];
            out0 -= val * old_out2;
            out1 -= val * old_out3;
            out2 -= val * old_out0;
            out3 -= val * old_out1;
            FFSWAP(float, old_out0, old_out2);
            old_out1 = old_out3;
        }
        tmp0 = out0;
        tmp1 = out1;
        tmp2 = out2;
        out3 -= a * tmp2;
        out2 -= a * tmp1;
        out1 -= a * tmp0;
        out3 -= b * tmp1;
        out2 -= b * tmp0;
        out3 -= c * tmp0;
        out[0] = out0;
        out[1] = out1;
        out[2] = out2;
        out[3] = out3;
        old_out0 = out0;
        old_out1 = out1;
        old_out2 = out2;
        old_out3 = out3;
        out += 4;
        in  += 4;
    }
    out -= n;
    in -= n;
    for (; n < buffer_length; n++) {
        out[n] = in[n];
        for (i = 1; i <= filter_length; i++)
            out[n] -= filter_coeffs[i-1] * out[n-i];
    }
#endif
}
['void ff_sipr_decode_frame_16k(SiprContext *ctx, SiprParameters *params,\n                              float *out_data)\n{\n    int frame_size = SUBFRAME_COUNT_16k * L_SUBFR_16k;\n    float *synth = ctx->synth_buf + LP_FILTER_ORDER_16k;\n    float lsf_new[LP_FILTER_ORDER_16k];\n    double lsp_new[LP_FILTER_ORDER_16k];\n    float Az[2][LP_FILTER_ORDER_16k];\n    float fixed_vector[L_SUBFR_16k];\n    float pitch_fac, gain_code;\n    int i;\n    int pitch_delay_3x;\n    float *excitation = ctx->excitation + 292;\n    lsf_decode_fp_16k(ctx->lsf_history, lsf_new, params->vq_indexes,\n                      params->ma_pred_switch);\n    ff_set_min_dist_lsf(lsf_new, LSFQ_DIFF_MIN / 2, LP_FILTER_ORDER_16k);\n    lsf2lsp(lsf_new, lsp_new);\n    acelp_lp_decodef(Az[0], Az[1], lsp_new, ctx->lsp_history_16k);\n    memcpy(ctx->lsp_history_16k, lsp_new, LP_FILTER_ORDER_16k * sizeof(double));\n    memcpy(synth - LP_FILTER_ORDER_16k, ctx->synth,\n           LP_FILTER_ORDER_16k * sizeof(*synth));\n    for (i = 0; i < SUBFRAME_COUNT_16k; i++) {\n        int i_subfr = i * L_SUBFR_16k;\n        AMRFixed f;\n        float gain_corr_factor;\n        int pitch_delay_int;\n        int pitch_delay_frac;\n        if (!i) {\n            pitch_delay_3x = dec_delay3_1st(params->pitch_delay[i]);\n        } else\n            pitch_delay_3x = dec_delay3_2nd(params->pitch_delay[i],\n                                            PITCH_MIN, PITCH_MAX,\n                                            ctx->pitch_lag_prev);\n        pitch_fac = gain_pitch_cb_16k[params->gp_index[i]];\n        f.pitch_fac = FFMIN(pitch_fac, 1.0);\n        f.pitch_lag = DIVIDE_BY_3(pitch_delay_3x+1);\n        ctx->pitch_lag_prev = f.pitch_lag;\n        pitch_delay_int  = DIVIDE_BY_3(pitch_delay_3x + 2);\n        pitch_delay_frac = pitch_delay_3x + 2 - 3*pitch_delay_int;\n        ff_acelp_interpolatef(&excitation[i_subfr],\n                              &excitation[i_subfr] - pitch_delay_int + 1,\n                              sinc_win, 3, pitch_delay_frac + 1,\n                              LP_FILTER_ORDER, L_SUBFR_16k);\n        memset(fixed_vector, 0, sizeof(fixed_vector));\n        ff_decode_10_pulses_35bits(params->fc_indexes[i], &f,\n                                   ff_fc_4pulses_8bits_tracks_13, 5, 4);\n        ff_set_fixed_vector(fixed_vector, &f, 1.0, L_SUBFR_16k);\n        gain_corr_factor = gain_cb_16k[params->gc_index[i]];\n        gain_code = gain_corr_factor *\n            acelp_decode_gain_codef(sqrt(L_SUBFR_16k), fixed_vector,\n                                    19.0 - 15.0/(0.05*M_LN10/M_LN2),\n                                    pred_16k, ctx->energy_history,\n                                    L_SUBFR_16k, 2);\n        ctx->energy_history[1] = ctx->energy_history[0];\n        ctx->energy_history[0] = 20.0 * log10f(gain_corr_factor);\n        ff_weighted_vector_sumf(&excitation[i_subfr], &excitation[i_subfr],\n                                fixed_vector, pitch_fac,\n                                gain_code, L_SUBFR_16k);\n        ff_celp_lp_synthesis_filterf(synth + i_subfr, Az[i],\n                                     &excitation[i_subfr], L_SUBFR_16k,\n                                     LP_FILTER_ORDER_16k);\n    }\n    memcpy(ctx->synth, synth + frame_size - LP_FILTER_ORDER_16k,\n           LP_FILTER_ORDER_16k * sizeof(*synth));\n    memmove(ctx->excitation, ctx->excitation + 2 * L_SUBFR_16k,\n            (L_INTERPOL+PITCH_MAX) * sizeof(float));\n    postfilter(out_data, synth, ctx->iir_mem, ctx->filt_mem, ctx->mem_preemph);\n    memcpy(ctx->iir_mem, Az[1], LP_FILTER_ORDER_16k * sizeof(float));\n}', 'void ff_celp_lp_synthesis_filterf(float *out, const float *filter_coeffs,\n                                  const float* in, int buffer_length,\n                                  int filter_length)\n{\n    int i,n;\n#if 0\n    for (n = 0; n < buffer_length; n++) {\n        out[n] = in[n];\n        for (i = 1; i <= filter_length; i++)\n            out[n] -= filter_coeffs[i-1] * out[n-i];\n    }\n#else\n    float out0, out1, out2, out3;\n    float old_out0, old_out1, old_out2, old_out3;\n    float a,b,c;\n    a = filter_coeffs[0];\n    b = filter_coeffs[1];\n    c = filter_coeffs[2];\n    b -= filter_coeffs[0] * filter_coeffs[0];\n    c -= filter_coeffs[1] * filter_coeffs[0];\n    c -= filter_coeffs[0] * b;\n    old_out0 = out[-4];\n    old_out1 = out[-3];\n    old_out2 = out[-2];\n    old_out3 = out[-1];\n    for (n = 0; n <= buffer_length - 4; n+=4) {\n        float tmp0,tmp1,tmp2;\n        float val;\n        out0 = in[0];\n        out1 = in[1];\n        out2 = in[2];\n        out3 = in[3];\n        out0 -= filter_coeffs[2] * old_out1;\n        out1 -= filter_coeffs[2] * old_out2;\n        out2 -= filter_coeffs[2] * old_out3;\n        out0 -= filter_coeffs[1] * old_out2;\n        out1 -= filter_coeffs[1] * old_out3;\n        out0 -= filter_coeffs[0] * old_out3;\n        val = filter_coeffs[3];\n        out0 -= val * old_out0;\n        out1 -= val * old_out1;\n        out2 -= val * old_out2;\n        out3 -= val * old_out3;\n        for (i = 5; i < filter_length; i += 2) {\n            old_out3 = out[-i];\n            val = filter_coeffs[i-1];\n            out0 -= val * old_out3;\n            out1 -= val * old_out0;\n            out2 -= val * old_out1;\n            out3 -= val * old_out2;\n            old_out2 = out[-i-1];\n            val = filter_coeffs[i];\n            out0 -= val * old_out2;\n            out1 -= val * old_out3;\n            out2 -= val * old_out0;\n            out3 -= val * old_out1;\n            FFSWAP(float, old_out0, old_out2);\n            old_out1 = old_out3;\n        }\n        tmp0 = out0;\n        tmp1 = out1;\n        tmp2 = out2;\n        out3 -= a * tmp2;\n        out2 -= a * tmp1;\n        out1 -= a * tmp0;\n        out3 -= b * tmp1;\n        out2 -= b * tmp0;\n        out3 -= c * tmp0;\n        out[0] = out0;\n        out[1] = out1;\n        out[2] = out2;\n        out[3] = out3;\n        old_out0 = out0;\n        old_out1 = out1;\n        old_out2 = out2;\n        old_out3 = out3;\n        out += 4;\n        in  += 4;\n    }\n    out -= n;\n    in -= n;\n    for (; n < buffer_length; n++) {\n        out[n] = in[n];\n        for (i = 1; i <= filter_length; i++)\n            out[n] -= filter_coeffs[i-1] * out[n-i];\n    }\n#endif\n}']