diff options
author | Robert Swain <robert.swain@gmail.com> | 2008-08-11 11:16:06 +0000 |
---|---|---|
committer | Robert Swain <robert.swain@gmail.com> | 2008-08-11 11:16:06 +0000 |
commit | 9cc04edff9fff54416bc9fe0f55dd65ed5deed60 (patch) | |
tree | 239e4c23e39f93d0707f4ecf73cb072f6ebb5d95 /libavcodec/aac.h | |
parent | 3f66d16821a4a6140b4ed5b977f14008ba5f826e (diff) | |
download | ffmpeg-9cc04edff9fff54416bc9fe0f55dd65ed5deed60.tar.gz |
More OKed hunks of the AAC decoder from SoC
Originally committed as revision 14694 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/aac.h')
-rw-r--r-- | libavcodec/aac.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/libavcodec/aac.h b/libavcodec/aac.h index ebf2218c8a..aafb8261be 100644 --- a/libavcodec/aac.h +++ b/libavcodec/aac.h @@ -43,6 +43,7 @@ size); #define MAX_CHANNELS 64 +#define MAX_ELEM_ID 16 #define IVQUANT_SIZE 1024 @@ -76,6 +77,17 @@ enum AudioObjectType { AOT_SSC, ///< N SinuSoidal Coding }; +enum RawDataBlockType { + TYPE_SCE, + TYPE_CPE, + TYPE_CCE, + TYPE_LFE, + TYPE_DSE, + TYPE_PCE, + TYPE_FIL, + TYPE_END, +}; + enum ExtensionPayloadID { EXT_FILL, EXT_FILL_DATA, @@ -111,6 +123,35 @@ enum ChannelPosition { AAC_CHANNEL_CC = 5, }; +/** + * The point during decoding at which channel coupling is applied. + */ +enum CouplingPoint { + BEFORE_TNS, + BETWEEN_TNS_AND_IMDCT, + AFTER_IMDCT = 3, +}; + +/** + * Individual Channel Stream + */ + +/** + * Dynamic Range Control - decoded from the bitstream but not processed further. + */ +typedef struct { + 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 { int num_pulse; int start; @@ -134,9 +175,15 @@ typedef struct { int is_saved; ///< Set if elements have stored overlap from previous frame. DynamicRangeControl che_drc; + /** + * @defgroup elements + * @{ + */ enum ChannelPosition che_pos[4][MAX_ELEM_ID]; /**< channel element channel mapping with the * first index as the first 4 raw data block types */ + ChannelElement * che[4][MAX_ELEM_ID]; + /** @} */ /** * @defgroup tables Computed / set up during initialization. @@ -145,6 +192,7 @@ typedef struct { MDCTContext mdct; MDCTContext mdct_small; DSPContext dsp; + int random_state; /** @} */ /** |