*/
/**
- * @file libavcodec/aac.h
+ * @file
* AAC definitions and structures
* @author Oded Shimon ( ods15 ods15 dyndns org )
* @author Maxim Gavrilov ( maxim.gavrilov gmail com )
#include "dsputil.h"
#include "fft.h"
#include "mpeg4audio.h"
+#include "sbr.h"
#include <stdint.h>
-#define AAC_INIT_VLC_STATIC(num, size) \
- INIT_VLC_STATIC(&vlc_spectral[num], 8, ff_aac_spectral_sizes[num], \
- ff_aac_spectral_bits[num], sizeof( ff_aac_spectral_bits[num][0]), sizeof( ff_aac_spectral_bits[num][0]), \
- ff_aac_spectral_codes[num], sizeof(ff_aac_spectral_codes[num][0]), sizeof(ff_aac_spectral_codes[num][0]), \
- size);
-
#define MAX_CHANNELS 64
#define MAX_ELEM_ID 16
uint8_t zeroes[128]; ///< band is not coded (used by encoder)
DECLARE_ALIGNED(16, float, coeffs)[1024]; ///< coefficients for IMDCT
DECLARE_ALIGNED(16, float, saved)[1024]; ///< overlap
- DECLARE_ALIGNED(16, float, ret)[1024]; ///< PCM output
+ DECLARE_ALIGNED(16, float, ret)[2048]; ///< PCM output
PredictorState predictor_state[MAX_PREDICTORS];
} SingleChannelElement;
SingleChannelElement ch[2];
// CCE specific
ChannelCoupling coup;
+ SpectralBandReplication sbr;
} ChannelElement;
/**
* main AAC context
*/
typedef struct {
- AVCodecContext * avccontext;
+ AVCodecContext *avctx;
MPEG4AudioConfig m4ac;
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];
+ ChannelElement *che[4][MAX_ELEM_ID];
+ ChannelElement *tag_che_map[4][MAX_ELEM_ID];
+ uint8_t tags_seen_this_frame[4][MAX_ELEM_ID];
int tags_mapped;
/** @} */