]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/dca_core.h
Merge commit 'dce2929efa8e82b0832a828f7e8cb81ff8c20a4e'
[ffmpeg] / libavcodec / dca_core.h
index 7dcfb13bc7cfad1cb412bec2b77f2bed9f90b5c1..10128d1e32c88435ecfd5f64582650f7123a1d5b 100644 (file)
 #define DCA_FILTER_MODE_X96     0x01
 #define DCA_FILTER_MODE_FIXED   0x02
 
+enum DCACoreAudioMode {
+    DCA_AMODE_MONO,             // Mode 0: A (mono)
+    DCA_AMODE_MONO_DUAL,        // Mode 1: A + B (dual mono)
+    DCA_AMODE_STEREO,           // Mode 2: L + R (stereo)
+    DCA_AMODE_STEREO_SUMDIFF,   // Mode 3: (L+R) + (L-R) (sum-diff)
+    DCA_AMODE_STEREO_TOTAL,     // Mode 4: LT + RT (left and right total)
+    DCA_AMODE_3F,               // Mode 5: C + L + R
+    DCA_AMODE_2F1R,             // Mode 6: L + R + S
+    DCA_AMODE_3F1R,             // Mode 7: C + L + R + S
+    DCA_AMODE_2F2R,             // Mode 8: L + R + SL + SR
+    DCA_AMODE_3F2R,             // Mode 9: C + L + R + SL + SR
+
+    DCA_AMODE_COUNT
+};
+
+enum DCACoreExtAudioType {
+    DCA_EXT_AUDIO_XCH   = 0,
+    DCA_EXT_AUDIO_X96   = 2,
+    DCA_EXT_AUDIO_XXCH  = 6
+};
+
+enum DCACoreLFEFlag {
+    DCA_LFE_FLAG_NONE,
+    DCA_LFE_FLAG_128,
+    DCA_LFE_FLAG_64,
+    DCA_LFE_FLAG_INVALID
+};
+
 typedef struct DCADSPData {
     union {
         struct {
@@ -73,6 +101,7 @@ typedef struct DCADSPData {
 typedef struct DCACoreDecoder {
     AVCodecContext  *avctx;
     GetBitContext   gb;
+    GetBitContext   gb_in;
 
     // Bit stream header
     int     crc_present;        ///< CRC present flag