# HG changeset patch # User vitor # Date 1257826638 0 # Node ID a1d84a5cf21d6914a00627752c5d6b7da95ae2d0 # Parent e7f082df2d6523d7da5fd0340eb7aa0eff1f1ee8 Avoid variable-length array use in ff_acelp_lspd2lpc() diff -r e7f082df2d65 -r a1d84a5cf21d lsp.c --- a/lsp.c Tue Nov 10 02:51:47 2009 +0000 +++ b/lsp.c Tue Nov 10 04:17:18 2009 +0000 @@ -157,9 +157,11 @@ void ff_acelp_lspd2lpc(const double *lsp, float *lpc, int lp_half_order) { - double pa[lp_half_order+1], qa[lp_half_order+1]; + double pa[MAX_LP_HALF_ORDER+1], qa[MAX_LP_HALF_ORDER+1]; float *lpc2 = lpc + (lp_half_order << 1) - 1; + assert(lp_half_order <= MAX_LP_HALF_ORDER); + lsp2polyf(lsp, pa, lp_half_order); lsp2polyf(lsp + 1, qa, lp_half_order); diff -r e7f082df2d65 -r a1d84a5cf21d lsp.h --- a/lsp.h Tue Nov 10 02:51:47 2009 +0000 +++ b/lsp.h Tue Nov 10 04:17:18 2009 +0000 @@ -80,11 +80,16 @@ */ void ff_acelp_lp_decode(int16_t* lp_1st, int16_t* lp_2nd, const int16_t* lsp_2nd, const int16_t* lsp_prev, int lp_order); + +#define MAX_LP_HALF_ORDER 8 + /** * Reconstructs LPC coefficients from the line spectral pair frequencies. * * @param lsp line spectral pairs in cosine domain * @param lpc linear predictive coding coefficients + * @param lp_half_order half the number of the amount of LPCs to be + * reconstructed, need to be smaller or equal to MAX_LP_HALF_ORDER * * @note buffers should have a minimux size of 2*lp_half_order elements. *