]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/aac.h
swscale: Provide the right alignment for external mmx asm
[ffmpeg] / libavcodec / aac.h
index 49def78979bc83d0357e47fa39dbd0b9af1d8065..45aacd107160ff17b1d86e8f1bae2f6411b30ac3 100644 (file)
@@ -30,6 +30,7 @@
 #ifndef AVCODEC_AAC_H
 #define AVCODEC_AAC_H
 
+#include "libavutil/float_dsp.h"
 #include "avcodec.h"
 #include "dsputil.h"
 #include "fft.h"
@@ -112,6 +113,15 @@ enum OCStatus {
     OC_LOCKED,      ///< Output configuration locked in place
 };
 
+typedef struct {
+    MPEG4AudioConfig m4ac;
+    uint8_t layout_map[MAX_ELEM_ID*4][3];
+    int layout_map_tags;
+    int channels;
+    uint64_t channel_layout;
+    enum OCStatus status;
+} OutputConfiguration;
+
 /**
  * Predictor State
  */
@@ -254,8 +264,6 @@ typedef struct {
     AVCodecContext *avctx;
     AVFrame frame;
 
-    MPEG4AudioConfig m4ac;
-
     int is_saved;                 ///< Set if elements have stored overlap from previous frame.
     DynamicRangeControl che_drc;
 
@@ -263,8 +271,6 @@ typedef struct {
      * @name Channel element related data
      * @{
      */
-    uint8_t layout_map[MAX_ELEM_ID*4][3];
-    int layout_map_tags;
     ChannelElement          *che[4][MAX_ELEM_ID];
     ChannelElement  *tag_che_map[4][MAX_ELEM_ID];
     int tags_mapped;
@@ -287,6 +293,7 @@ typedef struct {
     FFTContext mdct_ltp;
     DSPContext dsp;
     FmtConvertContext fmt_conv;
+    AVFloatDSPContext fdsp;
     int random_state;
     /** @} */
 
@@ -299,7 +306,7 @@ typedef struct {
 
     DECLARE_ALIGNED(32, float, temp)[128];
 
-    enum OCStatus output_configured;
+    OutputConfiguration oc[2];
 } AACContext;
 
 #endif /* AVCODEC_AAC_H */