[FFmpeg-devel] [PATCH] SIPR: kill variable-length arrays
Vitor Sessak
vitor1001
Wed Jan 13 02:05:48 CET 2010
Mans Rullgard wrote:
> Two of these are in fact constant size, so use the constant instead of
> a variable in the declarations. The remaining one is small enough
> that always using the maximum size is acceptable.
> ---
> libavcodec/sipr.c | 8 +++++---
> 1 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/libavcodec/sipr.c b/libavcodec/sipr.c
> index 7bfa3ab..e84e353 100644
> --- a/libavcodec/sipr.c
> +++ b/libavcodec/sipr.c
> @@ -46,6 +46,8 @@
> /** Subframe size for all modes except 16k */
> #define SUBFR_SIZE 48
>
> +#define MAX_SUBFRAME_COUNT 5
> +
> #include "siprdata.h"
>
> typedef enum {
> @@ -233,8 +235,8 @@ static void decode_parameters(SiprParameters* parms, GetBitContext *pgb,
> static void lsp2lpc_sipr(const double *lsp, float *Az)
> {
> int lp_half_order = LP_FILTER_ORDER >> 1;
> - double buf[lp_half_order + 1];
> - double pa[lp_half_order + 1];
> + double buf[(LP_FILTER_ORDER >> 1) + 1];
> + double pa[(LP_FILTER_ORDER >> 1) + 1];
> double *qa = buf + 1;
> int i,j;
>
> @@ -409,7 +411,7 @@ static void decode_frame(SiprContext *ctx, SiprParameters *params,
> {
> int i, j;
> int frame_size = ctx->m.subframe_count * SUBFR_SIZE;
> - float Az[LP_FILTER_ORDER * ctx->m.subframe_count];
> + float Az[LP_FILTER_ORDER * MAX_SUBFRAME_COUNT];
> float *excitation;
> float ir_buf[SUBFR_SIZE + LP_FILTER_ORDER];
> float lsf_new[LP_FILTER_ORDER];
Patch ok.
-Vitor
More information about the ffmpeg-devel
mailing list