avcodec/aacdec: Always include AV(Fixed|Float)DSPContext in AACDecContext

Up until now, AACDecContext included pointers to one of these
contexts depending upon USE_FIXED. Yet deduplicating
the common parts of the float and fixed-point AAC decoders
needs common structures, so we put both of these pointers
in a union.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt 2024-02-29 17:06:47 +01:00 committed by Lynne
parent 5bd7b8d999
commit 8b2261e573
No known key found for this signature in database
GPG Key ID: A2FEA5F03F034464
1 changed files with 11 additions and 5 deletions

View File

@ -67,6 +67,9 @@ enum CouplingPoint {
AFTER_IMDCT = 3,
};
// Supposed to be equal to AAC_RENAME() in case of USE_FIXED.
#define RENAME_FIXED(name) name ## _fixed
/**
* Long Term Prediction
*/
@ -227,11 +230,10 @@ typedef struct AACDecContext {
av_tx_fn mdct960_fn;
av_tx_fn mdct1024_fn;
av_tx_fn mdct_ltp_fn;
#if USE_FIXED
AVFixedDSPContext *fdsp;
#else
AVFloatDSPContext *fdsp;
#endif /* USE_FIXED */
union {
AVFixedDSPContext *RENAME_FIXED(fdsp);
AVFloatDSPContext *fdsp;
};
int random_state;
/** @} */
@ -272,6 +274,10 @@ typedef struct AACDecContext {
void (*subband_scale)(int *dst, int *src, int scale, int offset, int len, void *log_context);
} AACDecContext;
#if defined(USE_FIXED) && USE_FIXED
#define fdsp RENAME_FIXED(fdsp)
#endif
void ff_aacdec_init_mips(AACDecContext *c);
#endif /* AVCODEC_AACDEC_H */