summaryrefslogtreecommitdiffstats
path: root/audio/a2dp.h
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.dentz@openbossa.org>2008-01-23 13:11:07 +0000
committerLuiz Augusto von Dentz <luiz.dentz@openbossa.org>2008-01-23 13:11:07 +0000
commit9ae63b37bb909c66a931ee3934af1ad87047f326 (patch)
treecd772bc99e37d2c5ba3e611d10370dc361a683c7 /audio/a2dp.h
parentf67d81062c4be2cec6bb1b340a9f212f1227e062 (diff)
Initial support of mpeg12 codec.
Diffstat (limited to 'audio/a2dp.h')
-rw-r--r--audio/a2dp.h77
1 files changed, 57 insertions, 20 deletions
diff --git a/audio/a2dp.h b/audio/a2dp.h
index 8227296f..cfd1c47d 100644
--- a/audio/a2dp.h
+++ b/audio/a2dp.h
@@ -27,26 +27,37 @@
#define A2DP_CODEC_MPEG24 0x02
#define A2DP_CODEC_ATRAC 0x03
-#define A2DP_SAMPLING_FREQ_16000 (1 << 3)
-#define A2DP_SAMPLING_FREQ_32000 (1 << 2)
-#define A2DP_SAMPLING_FREQ_44100 (1 << 1)
-#define A2DP_SAMPLING_FREQ_48000 1
-
-#define A2DP_CHANNEL_MODE_MONO (1 << 3)
-#define A2DP_CHANNEL_MODE_DUAL_CHANNEL (1 << 2)
-#define A2DP_CHANNEL_MODE_STEREO (1 << 1)
-#define A2DP_CHANNEL_MODE_JOINT_STEREO 1
-
-#define A2DP_BLOCK_LENGTH_4 (1 << 3)
-#define A2DP_BLOCK_LENGTH_8 (1 << 2)
-#define A2DP_BLOCK_LENGTH_12 (1 << 1)
-#define A2DP_BLOCK_LENGTH_16 1
-
-#define A2DP_SUBBANDS_4 (1 << 1)
-#define A2DP_SUBBANDS_8 1
-
-#define A2DP_ALLOCATION_SNR (1 << 1)
-#define A2DP_ALLOCATION_LOUDNESS 1
+#define SBC_SAMPLING_FREQ_16000 (1 << 3)
+#define SBC_SAMPLING_FREQ_32000 (1 << 2)
+#define SBC_SAMPLING_FREQ_44100 (1 << 1)
+#define SBC_SAMPLING_FREQ_48000 1
+
+#define SBC_CHANNEL_MODE_MONO (1 << 3)
+#define SBC_CHANNEL_MODE_DUAL_CHANNEL (1 << 2)
+#define SBC_CHANNEL_MODE_STEREO (1 << 1)
+#define SBC_CHANNEL_MODE_JOINT_STEREO 1
+
+#define SBC_BLOCK_LENGTH_4 (1 << 3)
+#define SBC_BLOCK_LENGTH_8 (1 << 2)
+#define SBC_BLOCK_LENGTH_12 (1 << 1)
+#define SBC_BLOCK_LENGTH_16 1
+
+#define SBC_SUBBANDS_4 (1 << 1)
+#define SBC_SUBBANDS_8 1
+
+#define SBC_ALLOCATION_SNR (1 << 1)
+#define SBC_ALLOCATION_LOUDNESS 1
+
+#define MPEG_LAYER_MP1 (1 << 2)
+#define MPEG_LAYER_MP2 (1 << 1)
+#define MPEG_LAYER_MP3 1
+
+#define MPEG_SAMPLING_FREQ_16000 (1 << 5)
+#define MPEG_SAMPLING_FREQ_22050 (1 << 4)
+#define MPEG_SAMPLING_FREQ_24000 (1 << 3)
+#define MPEG_SAMPLING_FREQ_32000 (1 << 2)
+#define MPEG_SAMPLING_FREQ_44100 (1 << 1)
+#define MPEG_SAMPLING_FREQ_48000 1
#define MAX_BITPOOL 64
#define MIN_BITPOOL 2
@@ -64,6 +75,19 @@ struct sbc_codec_cap {
uint8_t max_bitpool;
} __attribute__ ((packed));
+struct mpeg_codec_cap {
+ struct avdtp_media_codec_capability cap;
+ uint8_t channel_mode:4;
+ uint8_t crc:1;
+ uint8_t layer:3;
+ uint8_t frequency:6;
+ uint8_t mpf:1;
+ uint8_t rfa:1;
+ uint8_t bitrate0:7;
+ uint8_t vbr:1;
+ uint8_t bitrate1;
+} __attribute__ ((packed));
+
#elif __BYTE_ORDER == __BIG_ENDIAN
struct sbc_codec_cap {
@@ -77,6 +101,19 @@ struct sbc_codec_cap {
uint8_t max_bitpool;
} __attribute__ ((packed));
+struct mpeg_codec_cap {
+ struct avdtp_media_codec_capability cap;
+ uint8_t layer:3;
+ uint8_t crc:1;
+ uint8_t channel_mode:4;
+ uint8_t rfa:1;
+ uint8_t mpf:1;
+ uint8_t frequency:6;
+ uint8_t vbr:1;
+ uint8_t bitrate0:7;
+ uint8_t bitrate1;
+} __attribute__ ((packed));
+
#else
#error "Unknown byte order"
#endif