diff options
author | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2014-11-22 20:49:13 +0100 |
---|---|---|
committer | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2014-11-23 06:51:18 +0100 |
commit | 458aadf8627c27c35cc29e7842c6f7fc9a5695ad (patch) | |
tree | 63ebb61d9432931f2fc92bb634b0f4c694595a46 | |
parent | f87a34486af06c2c396d4dd1df8ffb74eaf77459 (diff) | |
download | ffmpeg-458aadf8627c27c35cc29e7842c6f7fc9a5695ad.tar.gz |
lpc: Reduce stack usage by allocating LLSModel in context.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
-rw-r--r-- | libavcodec/lpc.c | 2 | ||||
-rw-r--r-- | libavcodec/lpc.h | 4 |
2 files changed, 5 insertions, 1 deletions
diff --git a/libavcodec/lpc.c b/libavcodec/lpc.c index f54f6f883d..deb02e7f58 100644 --- a/libavcodec/lpc.c +++ b/libavcodec/lpc.c @@ -208,7 +208,7 @@ int ff_lpc_calc_coefs(LPCContext *s, } if (lpc_type == FF_LPC_TYPE_CHOLESKY) { - LLSModel m[2]; + LLSModel *m = s->lls_models; LOCAL_ALIGNED(32, double, var, [FFALIGN(MAX_LPC_ORDER+1,4)]); double av_uninit(weight); memset(var, 0, FFALIGN(MAX_LPC_ORDER+1,4)*sizeof(*var)); diff --git a/libavcodec/lpc.h b/libavcodec/lpc.h index 9e0b056338..96acb37146 100644 --- a/libavcodec/lpc.h +++ b/libavcodec/lpc.h @@ -24,6 +24,7 @@ #include <stdint.h> #include "libavutil/avassert.h" +#include "libavutil/lls.h" #define ORDER_METHOD_EST 0 #define ORDER_METHOD_2LEVEL 1 @@ -79,6 +80,9 @@ typedef struct LPCContext { */ void (*lpc_compute_autocorr)(const double *data, int len, int lag, double *autoc); + + // TODO: these should be allocated to reduce ABI compatibility issues + LLSModel lls_models[2]; } LPCContext; |