#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 {
typedef struct DCACoreDecoder {
AVCodecContext *avctx;
GetBitContext gb;
+ GetBitContext gb_in;
// Bit stream header
int crc_present; ///< CRC present flag