1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-08-04 22:03:09 +02:00

avcodec/ac3dec: move some fields up in AC3DecodeContext

Needed for the following commit.

Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
James Almer
2025-02-12 19:01:14 -03:00
parent 22aa71d4da
commit a9e8586e3f

View File

@ -75,6 +75,28 @@ typedef struct AC3DecodeContext {
AVCodecContext *avctx; ///< parent context AVCodecContext *avctx; ///< parent context
GetBitContext gbc; ///< bitstream reader GetBitContext gbc; ///< bitstream reader
///@name Optimization
BswapDSPContext bdsp;
#if USE_FIXED
AVFixedDSPContext *fdsp;
#else
AVFloatDSPContext *fdsp;
#endif
AC3DSPContext ac3dsp;
FmtConvertContext fmt_conv; ///< optimized conversion functions
///@}
AVTXContext *tx_128, *tx_256;
av_tx_fn tx_fn_128, tx_fn_256;
INTFLOAT *xcfptr[AC3_MAX_CHANNELS];
INTFLOAT *dlyptr[AC3_MAX_CHANNELS];
AVChannelLayout downmix_layout;
SHORTFLOAT *downmix_coeffs[2]; ///< stereo downmix coefficients
// Start of flushable fields.
///@name Bit stream information ///@name Bit stream information
///@{ ///@{
int frame_type; ///< frame type (strmtyp) int frame_type; ///< frame type (strmtyp)
@ -164,7 +186,6 @@ typedef struct AC3DecodeContext {
int fbw_channels; ///< number of full-bandwidth channels int fbw_channels; ///< number of full-bandwidth channels
int channels; ///< number of total channels int channels; ///< number of total channels
int lfe_ch; ///< index of LFE channel int lfe_ch; ///< index of LFE channel
SHORTFLOAT *downmix_coeffs[2]; ///< stereo downmix coefficients
int downmixed; ///< indicates if coeffs are currently downmixed int downmixed; ///< indicates if coeffs are currently downmixed
int output_mode; ///< output channel configuration int output_mode; ///< output channel configuration
int prev_output_mode; ///< output channel configuration for previous frame int prev_output_mode; ///< output channel configuration for previous frame
@ -222,24 +243,9 @@ typedef struct AC3DecodeContext {
///@name IMDCT ///@name IMDCT
int block_switch[AC3_MAX_CHANNELS]; ///< block switch flags (blksw) int block_switch[AC3_MAX_CHANNELS]; ///< block switch flags (blksw)
AVTXContext *tx_128, *tx_256;
av_tx_fn tx_fn_128, tx_fn_256;
///@}
///@name Optimization
BswapDSPContext bdsp;
#if USE_FIXED
AVFixedDSPContext *fdsp;
#else
AVFloatDSPContext *fdsp;
#endif
AC3DSPContext ac3dsp;
FmtConvertContext fmt_conv; ///< optimized conversion functions
///@} ///@}
SHORTFLOAT *outptr[AC3_MAX_CHANNELS]; SHORTFLOAT *outptr[AC3_MAX_CHANNELS];
INTFLOAT *xcfptr[AC3_MAX_CHANNELS];
INTFLOAT *dlyptr[AC3_MAX_CHANNELS];
///@name Aligned arrays ///@name Aligned arrays
DECLARE_ALIGNED(16, int, fixed_coeffs)[AC3_MAX_CHANNELS][AC3_MAX_COEFS]; ///< fixed-point transform coefficients DECLARE_ALIGNED(16, int, fixed_coeffs)[AC3_MAX_CHANNELS][AC3_MAX_COEFS]; ///< fixed-point transform coefficients
@ -251,8 +257,6 @@ typedef struct AC3DecodeContext {
DECLARE_ALIGNED(32, uint8_t, input_buffer)[AC3_FRAME_BUFFER_SIZE + AV_INPUT_BUFFER_PADDING_SIZE]; ///< temp buffer to prevent overread DECLARE_ALIGNED(32, uint8_t, input_buffer)[AC3_FRAME_BUFFER_SIZE + AV_INPUT_BUFFER_PADDING_SIZE]; ///< temp buffer to prevent overread
DECLARE_ALIGNED(32, SHORTFLOAT, output_buffer)[EAC3_MAX_CHANNELS][AC3_BLOCK_SIZE * 6]; ///< final output buffer DECLARE_ALIGNED(32, SHORTFLOAT, output_buffer)[EAC3_MAX_CHANNELS][AC3_BLOCK_SIZE * 6]; ///< final output buffer
///@} ///@}
AVChannelLayout downmix_layout;
} AC3DecodeContext; } AC3DecodeContext;
/** /**