diff options
Diffstat (limited to 'stack/include/a2d_m24.h')
-rw-r--r-- | stack/include/a2d_m24.h | 122 |
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 */ + |