Mercurial > libavcodec.hg
changeset 10506:a1d84a5cf21d libavcodec
Avoid variable-length array use in ff_acelp_lspd2lpc()
author | vitor |
---|---|
date | Tue, 10 Nov 2009 04:17:18 +0000 |
parents | e7f082df2d65 |
children | ca71c924b65f |
files | lsp.c lsp.h |
diffstat | 2 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- 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);
--- 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. *