aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/aacenc.h
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2024-02-29 22:12:48 +0100
committerLynne <dev@lynne.ee>2024-04-23 08:31:28 +0200
commitfc3c2ea8dce682eeaaa53b4fed02bebc7a684c46 (patch)
treeb0a6dd166816f734b908b4ac19c13c65931ecedb /libavcodec/aacenc.h
parent8b2261e573b9c5c06f8b3783b98bf18ac34527f4 (diff)
downloadffmpeg-fc3c2ea8dce682eeaaa53b4fed02bebc7a684c46.tar.gz
avcodec/aacdec: PredictorState array out of SingleChannelElement
sizeof(PredictorState) is different for the floating-point and the fixed-point AAC decoders; this is an obstacle for deduplicating code between these decoders. So don't include this array in SingleChannelElement, instead add a union of pointers to the fixed-point PredictorState and the floating-point PredictorState. The actual arrays are part of the extended ChannelElement to be allocated by ff_aac_sbr_ctx_alloc_init(); it also sets the pointers. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavcodec/aacenc.h')
-rw-r--r--libavcodec/aacenc.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/libavcodec/aacenc.h b/libavcodec/aacenc.h
index 8899f90ac7..d07960620e 100644
--- a/libavcodec/aacenc.h
+++ b/libavcodec/aacenc.h
@@ -49,6 +49,20 @@ typedef enum AACCoder {
AAC_CODER_NB,
}AACCoder;
+/**
+ * Predictor State
+ */
+typedef struct PredictorState {
+ float cor0;
+ float cor1;
+ float var0;
+ float var1;
+ float r0;
+ float r1;
+ float k1;
+ float x_est;
+} PredictorState;
+
typedef struct AACEncOptions {
int coder;
int pns;