summaryrefslogtreecommitdiffstats
path: root/stack/include/a2d_m24.h
diff options
context:
space:
mode:
Diffstat (limited to 'stack/include/a2d_m24.h')
-rw-r--r--stack/include/a2d_m24.h122
1 files changed, 122 insertions, 0 deletions
diff --git a/stack/include/a2d_m24.h b/stack/include/a2d_m24.h
new file mode 100644
index 0000000..0417a57
--- /dev/null
+++ b/stack/include/a2d_m24.h
@@ -0,0 +1,122 @@
+/*****************************************************************************
+**
+** Name: a2d_m24.h
+**
+** Description:Interface to MPEG-2, 4 Aac
+**
+** Copyright (c) 2000-2004, WIDCOMM Inc., All Rights Reserved.
+** WIDCOMM Bluetooth Core. Proprietary and confidential.
+**
+*****************************************************************************/
+#ifndef A2D_M24_H
+#define A2D_M24_H
+
+/*****************************************************************************
+** Constants
+*****************************************************************************/
+
+/* the LOSC of MPEG_2, 4 AAC media codec capabilitiy */
+#define A2D_M24_INFO_LEN 8
+
+/* for Codec Specific Information Element */
+#define A2D_M24_IE_OBJ_MSK 0xF0 /* b7-b4 object type. b3-b0 is RFA,not used */
+#define A2D_M24_IE_OBJ_2LC 0x80 /* b7: MPEG-2 AAC LC */
+#define A2D_M24_IE_OBJ_4LC 0x40 /* b6: MPEG-4 AAC LC */
+#define A2D_M24_IE_OBJ_4LTP 0x20 /* b5: MPEG-4 AAC LTP */
+#define A2D_M24_IE_OBJ_4S 0x10 /* b4: MPEG-4 AAC scalable */
+
+#define A2D_M24_IE_SAMP_FREQ_MSK 0xFFF0 /* sampling frequency */
+#define A2D_M24_IE_SAMP_FREQ_8 0x8000 /* b7:8 kHz */
+#define A2D_M24_IE_SAMP_FREQ_11 0x4000 /* b6:11 kHz */
+#define A2D_M24_IE_SAMP_FREQ_12 0x2000 /* b5:12 kHz */
+#define A2D_M24_IE_SAMP_FREQ_16 0x1000 /* b4:16 kHz */
+#define A2D_M24_IE_SAMP_FREQ_22 0x0800 /* b3:22.05kHz */
+#define A2D_M24_IE_SAMP_FREQ_24 0x0400 /* b2:24 kHz */
+#define A2D_M24_IE_SAMP_FREQ_32 0x0200 /* b1:32 kHz */
+#define A2D_M24_IE_SAMP_FREQ_44 0x0100 /* b0:44.1kHz */
+#define A2D_M24_IE_SAMP_FREQ_48 0x0080 /* b7:48 kHz */
+#define A2D_M24_IE_SAMP_FREQ_64 0x0040 /* b6:64 kHz */
+#define A2D_M24_IE_SAMP_FREQ_88 0x0020 /* b5:88 kHz */
+#define A2D_M24_IE_SAMP_FREQ_96 0x0010 /* b4:96 kHz */
+
+#define A2D_M24_IE_CHNL_MSK 0x0C /* b3-b2 channels */
+#define A2D_M24_IE_CHNL_1 0x08 /* b3: 1 channel */
+#define A2D_M24_IE_CHNL_2 0x04 /* b2: 2 channels */
+
+#define A2D_M24_IE_VBR_MSK 0x80 /* b7: VBR */
+
+#define A2D_M24_IE_BITRATE3_MSK 0x7F0000 /* octect3*/
+#define A2D_M24_IE_BITRATE45_MSK 0x00FFFF /* octect4, 5*/
+#define A2D_M24_IE_BITRATE_MSK 0x7FFFFF /* b7-b0 of octect 3, all of octect4, 5*/
+
+
+/*****************************************************************************
+** Type Definitions
+*****************************************************************************/
+
+/* data type for the MPEG-2, 4 AAC Codec Information Element*/
+typedef struct
+{
+ UINT8 obj_type; /* Object type */
+ UINT16 samp_freq; /* Sampling frequency */
+ UINT8 chnl; /* Channel mode */
+ BOOLEAN vbr; /* Variable Bit Rate */
+ UINT32 bitrate; /* Bit rate index */
+} tA2D_M24_CIE;
+
+/*****************************************************************************
+** External Function Declarations
+*****************************************************************************/
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+/******************************************************************************
+**
+** Function A2D_BldM24Info
+**
+** Description This function is called by an application to build
+** the MPEG-2, 4 AAC Media Codec Capabilities byte sequence
+** beginning from the LOSC octet.
+** Input Parameters:
+** media_type: Indicates Audio, or Multimedia.
+**
+** p_ie: MPEG-2, 4 AAC Codec Information Element information.
+**
+** Output Parameters:
+** p_result: the resulting codec info byte sequence.
+**
+** Returns A2D_SUCCESS if function execution succeeded.
+** Error status code, otherwise.
+******************************************************************************/
+A2D_API extern tA2D_STATUS A2D_BldM24Info(UINT8 media_type, tA2D_M24_CIE *p_ie,
+ UINT8 *p_result);
+
+/******************************************************************************
+**
+** Function A2D_ParsM24Info
+**
+** Description This function is called by an application to parse
+** the MPEG-2, 4 AAC Media Codec Capabilities byte sequence
+** beginning from the LOSC octet.
+** Input Parameters:
+** p_info: the byte sequence to parse.
+**
+** for_caps: TRUE, if the byte sequence is for get
+** capabilities response.
+**
+** Output Parameters:
+** p_ie: MPEG-2, 4 AAC Codec Information Element information.
+**
+** Returns A2D_SUCCESS if function execution succeeded.
+** Error status code, otherwise.
+******************************************************************************/
+A2D_API extern tA2D_STATUS A2D_ParsM24Info(tA2D_M24_CIE *p_ie, UINT8 *p_info,
+ BOOLEAN for_caps);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* A2D_M24_H */
+