X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Faacenc.h;h=dec445ce346dca9298d6b8333493c61cf59aa723;hb=4628443ca3534060888dd0015b229337eac13fd2;hp=3d584d210e2b8903ed0700248f29598d65872ffb;hpb=2912e87a6c9264d556734e2bf94a99c64cf9b102;p=ffmpeg diff --git a/libavcodec/aacenc.h b/libavcodec/aacenc.h index 3d584d210e2..dec445ce346 100644 --- a/libavcodec/aacenc.h +++ b/libavcodec/aacenc.h @@ -22,14 +22,18 @@ #ifndef AVCODEC_AACENC_H #define AVCODEC_AACENC_H +#include "libavutil/float_dsp.h" #include "avcodec.h" #include "put_bits.h" -#include "dsputil.h" #include "aac.h" - +#include "audio_frame_queue.h" #include "psymodel.h" +typedef struct AACEncOptions { + int stereo_mode; +} AACEncOptions; + struct AACEncContext; typedef struct AACCoefficientsEncoder { @@ -48,13 +52,17 @@ extern AACCoefficientsEncoder ff_aac_coders[]; * AAC encoder context */ typedef struct AACEncContext { + AVClass *av_class; + AACEncOptions options; ///< encoding options PutBitContext pb; FFTContext mdct1024; ///< long (1024 samples) frame transform context FFTContext mdct128; ///< short (128 samples) frame transform context - DSPContext dsp; - int16_t *samples; ///< saved preprocessed input + AVFloatDSPContext fdsp; + float *planar_samples[6]; ///< saved preprocessed input int samplerate_index; ///< MPEG-4 samplerate index + int channels; ///< channel count + const uint8_t *chan_map; ///< channel configuration map ChannelElement *cpe; ///< channel elements FFPsyContext psy; @@ -63,8 +71,15 @@ typedef struct AACEncContext { int cur_channel; int last_frame; float lambda; + AudioFrameQueue afq; DECLARE_ALIGNED(16, int, qcoefs)[96]; ///< quantized coefficients - DECLARE_ALIGNED(16, float, scoefs)[1024]; ///< scaled coefficients + DECLARE_ALIGNED(32, float, scoefs)[1024]; ///< scaled coefficients + + struct { + float *samples; + } buffer; } AACEncContext; +extern float ff_aac_pow34sf_tab[428]; + #endif /* AVCODEC_AACENC_H */