diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2024-02-25 21:44:12 +0100 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2024-02-27 00:11:21 +0100 |
commit | a0fa6b6030e7c118c7c41e9c15c80c61ba0a1bae (patch) | |
tree | 8685a1e5e06d292817716a83bec8f13b8d680ef8 /libavcodec/aac.h | |
parent | c6cf253c98a7839d852f7f707979c8401a26459c (diff) | |
download | ffmpeg-a0fa6b6030e7c118c7c41e9c15c80c61ba0a1bae.tar.gz |
avocdec/aac: Move decoder-only stuff to new header aacdec.h
AACContext is not used by the encoder at all.
Reviewed-by: Lynne <dev@lynne.ee>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavcodec/aac.h')
-rw-r--r-- | libavcodec/aac.h | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/libavcodec/aac.h b/libavcodec/aac.h index 285d3b7482..da683b0071 100644 --- a/libavcodec/aac.h +++ b/libavcodec/aac.h @@ -33,12 +33,7 @@ #include "aac_defines.h" #include "libavutil/channel_layout.h" -#include "libavutil/float_dsp.h" -#include "libavutil/fixed_dsp.h" #include "libavutil/mem_internal.h" -#include "libavutil/tx.h" -#include "avcodec.h" -#include "mpeg4audio.h" #include "sbr.h" #include <stdint.h> @@ -109,25 +104,6 @@ enum CouplingPoint { }; /** - * Output configuration status - */ -enum OCStatus { - OC_NONE, ///< Output unconfigured - OC_TRIAL_PCE, ///< Output configuration under trial specified by an inband PCE - OC_TRIAL_FRAME, ///< Output configuration under trial specified by a frame header - OC_GLOBAL_HDR, ///< Output configuration set in a global header but not yet locked - OC_LOCKED, ///< Output configuration locked in place -}; - -typedef struct OutputConfiguration { - MPEG4AudioConfig m4ac; - uint8_t layout_map[MAX_ELEM_ID*4][3]; - int layout_map_tags; - AVChannelLayout ch_layout; - enum OCStatus status; -} OutputConfiguration; - -/** * Predictor State */ typedef struct PredictorState { @@ -203,22 +179,6 @@ typedef struct TemporalNoiseShaping { INTFLOAT coef[8][4][TNS_MAX_ORDER]; } TemporalNoiseShaping; -/** - * Dynamic Range Control - decoded from the bitstream but not processed further. - */ -typedef struct DynamicRangeControl { - int pce_instance_tag; ///< Indicates with which program the DRC info is associated. - int dyn_rng_sgn[17]; ///< DRC sign information; 0 - positive, 1 - negative - int dyn_rng_ctl[17]; ///< DRC magnitude information - int exclude_mask[MAX_CHANNELS]; ///< Channels to be excluded from DRC processing. - int band_incr; ///< Number of DRC bands greater than 1 having DRC info. - int interpolation_scheme; ///< Indicates the interpolation scheme used in the SBR QMF domain. - int band_top[17]; ///< Indicates the top of the i-th DRC band in units of 4 spectral lines. - int prog_ref_level; /**< A reference level for the long-term program audio level for all - * channels combined. - */ -} DynamicRangeControl; - typedef struct Pulse { int num_pulse; int start; @@ -285,107 +245,4 @@ typedef struct ChannelElement { SpectralBandReplication sbr; } ChannelElement; -enum AACOutputChannelOrder { - CHANNEL_ORDER_DEFAULT, - CHANNEL_ORDER_CODED, -}; - -/** - * main AAC context - */ -struct AACContext { - AVClass *class; - AVCodecContext *avctx; - AVFrame *frame; - - int is_saved; ///< Set if elements have stored overlap from previous frame. - DynamicRangeControl che_drc; - - /** - * @name Channel element related data - * @{ - */ - ChannelElement *che[4][MAX_ELEM_ID]; - ChannelElement *tag_che_map[4][MAX_ELEM_ID]; - int tags_mapped; - int warned_remapping_once; - /** @} */ - - /** - * @name temporary aligned temporary buffers - * (We do not want to have these on the stack.) - * @{ - */ - DECLARE_ALIGNED(32, INTFLOAT, buf_mdct)[1024]; - /** @} */ - - /** - * @name Computed / set up during initialization - * @{ - */ - AVTXContext *mdct120; - AVTXContext *mdct128; - AVTXContext *mdct480; - AVTXContext *mdct512; - AVTXContext *mdct960; - AVTXContext *mdct1024; - AVTXContext *mdct_ltp; - - av_tx_fn mdct120_fn; - av_tx_fn mdct128_fn; - av_tx_fn mdct480_fn; - av_tx_fn mdct512_fn; - 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 */ - int random_state; - /** @} */ - - /** - * @name Members used for output - * @{ - */ - SingleChannelElement *output_element[MAX_CHANNELS]; ///< Points to each SingleChannelElement - /** @} */ - - - /** - * @name Japanese DTV specific extension - * @{ - */ - int force_dmono_mode;///< 0->not dmono, 1->use first channel, 2->use second channel - int dmono_mode; ///< 0->not dmono, 1->use first channel, 2->use second channel - /** @} */ - - enum AACOutputChannelOrder output_channel_order; - - DECLARE_ALIGNED(32, INTFLOAT, temp)[128]; - - OutputConfiguration oc[2]; - int warned_num_aac_frames; - int warned_960_sbr; - unsigned warned_71_wide; - int warned_gain_control; - int warned_he_aac_mono; - - /* aacdec functions pointers */ - void (*imdct_and_windowing)(AACContext *ac, SingleChannelElement *sce); - void (*apply_ltp)(AACContext *ac, SingleChannelElement *sce); - void (*apply_tns)(INTFLOAT coef[1024], TemporalNoiseShaping *tns, - IndividualChannelStream *ics, int decode); - void (*windowing_and_mdct_ltp)(AACContext *ac, INTFLOAT *out, - INTFLOAT *in, IndividualChannelStream *ics); - void (*update_ltp)(AACContext *ac, SingleChannelElement *sce); - void (*vector_pow43)(int *coefs, int len); - void (*subband_scale)(int *dst, int *src, int scale, int offset, int len, void *log_context); - -}; - -void ff_aacdec_init_mips(AACContext *c); - #endif /* AVCODEC_AAC_H */ |