aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>2014-11-22 20:49:13 +0100
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>2014-11-23 06:51:18 +0100
commit458aadf8627c27c35cc29e7842c6f7fc9a5695ad (patch)
tree63ebb61d9432931f2fc92bb634b0f4c694595a46 /libavcodec
parentf87a34486af06c2c396d4dd1df8ffb74eaf77459 (diff)
downloadffmpeg-458aadf8627c27c35cc29e7842c6f7fc9a5695ad.tar.gz
lpc: Reduce stack usage by allocating LLSModel in context.
Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/lpc.c2
-rw-r--r--libavcodec/lpc.h4
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;