X-Git-Url: http://git.ffmpeg.org/gitweb/ffmpeg.git/blobdiff_plain/d0ee50216d8f33f5c03a856112204cbd66009d92..bb5c0988eac1d75245675d92554b9a0ef4124b5c:/libavcodec/aac.h diff --git a/libavcodec/aac.h b/libavcodec/aac.h index eec0828..32e7224 100644 --- a/libavcodec/aac.h +++ b/libavcodec/aac.h @@ -21,7 +21,7 @@ */ /** - * @file aac.h + * @file libavcodec/aac.h * AAC definitions and structures * @author Oded Shimon ( ods15 ods15 dyndns org ) * @author Maxim Gavrilov ( maxim.gavrilov gmail com ) @@ -30,6 +30,7 @@ #ifndef AVCODEC_AAC_H #define AVCODEC_AAC_H +#include "libavutil/internal.h" #include "avcodec.h" #include "dsputil.h" #include "mpeg4audio.h" @@ -133,6 +134,20 @@ enum CouplingPoint { }; /** + * Predictor State + */ +typedef struct { + float cor0; + float cor1; + float var0; + float var1; + float r0; + float r1; +} PredictorState; + +#define MAX_PREDICTORS 672 + +/** * Individual Channel Stream */ typedef struct { @@ -145,6 +160,10 @@ typedef struct { int num_swb; ///< number of scalefactor window bands int num_windows; int tns_max_bands; + int predictor_present; + int predictor_initialized; + int predictor_reset_group; + uint8_t prediction_used[41]; } IndividualChannelStream; /** @@ -207,6 +226,7 @@ typedef struct { DECLARE_ALIGNED_16(float, coeffs[1024]); ///< coefficients for IMDCT DECLARE_ALIGNED_16(float, saved[512]); ///< overlap DECLARE_ALIGNED_16(float, ret[1024]); ///< PCM output + PredictorState predictor_state[MAX_PREDICTORS]; } SingleChannelElement; /** @@ -233,13 +253,15 @@ typedef struct { DynamicRangeControl che_drc; /** - * @defgroup elements + * @defgroup elements Channel element related data. * @{ */ 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]; + ChannelElement * tag_che_map[4][MAX_ELEM_ID]; + int tags_mapped; /** @} */ /** @@ -269,6 +291,7 @@ typedef struct { int sf_offset; ///< offset into pow2sf_tab as appropriate for dsp.float_to_int16 /** @} */ + DECLARE_ALIGNED(16, float, temp[128]); } AACContext; #endif /* AVCODEC_AAC_H */