OSDN Git Service

original
[gb-231r1-is01/Gingerbread_2.3.3_r1_IS01.git] / frameworks / base / media / libstagefright / codecs / common / include / voAMRWB.h
1 /*\r
2  ** Copyright 2003-2010, VisualOn, Inc.\r
3  **\r
4  ** Licensed under the Apache License, Version 2.0 (the "License");\r
5  ** you may not use this file except in compliance with the License.\r
6  ** You may obtain a copy of the License at\r
7  **\r
8  **     http://www.apache.org/licenses/LICENSE-2.0\r
9  **\r
10  ** Unless required by applicable law or agreed to in writing, software\r
11  ** distributed under the License is distributed on an "AS IS" BASIS,\r
12  ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  ** See the License for the specific language governing permissions and\r
14  ** limitations under the License.\r
15  */\r
16 /*******************************************************************************\r
17         File:           voAMRWB.h\r
18 \r
19         Content:        AMR-WB codec APIs & data types\r
20 \r
21 *******************************************************************************/\r
22 #ifndef  __VOAMRWB_H__\r
23 #define  __VOAMRWB_H__\r
24 \r
25 #include  "voAudio.h"\r
26 #ifdef __cplusplus\r
27 extern "C" {\r
28 #endif /* __cplusplus */\r
29 #pragma pack(push, 4)\r
30 \r
31 /*!* the bit rate the codec supports*/\r
32 typedef enum { \r
33         VOAMRWB_MDNONE          = -1,   /*!< Invalid mode */\r
34         VOAMRWB_MD66            = 0,    /*!< 6.60kbps   */\r
35         VOAMRWB_MD885           = 1,    /*!< 8.85kbps   */       \r
36         VOAMRWB_MD1265          = 2,    /*!< 12.65kbps  */\r
37         VOAMRWB_MD1425          = 3,    /*!< 14.25kbps  */\r
38         VOAMRWB_MD1585          = 4,    /*!< 15.85bps   */\r
39         VOAMRWB_MD1825          = 5,    /*!< 18.25bps   */\r
40         VOAMRWB_MD1985          = 6,    /*!< 19.85kbps  */\r
41         VOAMRWB_MD2305          = 7,    /*!< 23.05kbps  */\r
42         VOAMRWB_MD2385          = 8,    /*!< 23.85kbps> */      \r
43         VOAMRWB_N_MODES         = 9,    /*!< Invalid mode */\r
44         VOAMRWB_MODE_MAX    = VO_MAX_ENUM_VALUE\r
45         \r
46 }VOAMRWBMODE;\r
47 \r
48 /*!* the frame format the codec supports*/\r
49 typedef enum {\r
50         VOAMRWB_DEFAULT         = 0,    /*!< the frame type is the header (defined in RFC3267) + rawdata*/\r
51         /*One word (2-byte) for sync word (0x6b21)*/\r
52         /*One word (2-byte) for frame length N.*/\r
53         /*N words (2-byte) containing N bits (bit 0 = 0x007f, bit 1 = 0x0081).*/\r
54         VOAMRWB_ITU         = 1, \r
55         /*One word (2-byte) for sync word (0x6b21).*/\r
56         /*One word (2-byte) to indicate the frame type.*/       \r
57         /*One word (2-byte) to indicate the mode.*/\r
58         /*N words  (2-byte) containing N bits (bit 0 = 0xff81, bit 1 = 0x007f).*/\r
59         VOAMRWB_RFC3267         = 2,    /* see RFC 3267 */  \r
60     VOAMRWB_TMAX        = VO_MAX_ENUM_VALUE     \r
61 }VOAMRWBFRAMETYPE;\r
62 \r
63 \r
64 #define    VO_PID_AMRWB_Module                                                  0x42261000 \r
65 #define    VO_PID_AMRWB_FORMAT                          (VO_PID_AMRWB_Module | 0x0002)\r
66 #define    VO_PID_AMRWB_CHANNELS                        (VO_PID_AMRWB_Module | 0x0003)\r
67 #define    VO_PID_AMRWB_SAMPLERATE                      (VO_PID_AMRWB_Module | 0x0004)\r
68 #define    VO_PID_AMRWB_FRAMETYPE                       (VO_PID_AMRWB_Module | 0x0005)\r
69 #define    VO_PID_AMRWB_MODE                            (VO_PID_AMRWB_Module | 0x0006)\r
70 #define    VO_PID_AMRWB_DTX                             (VO_PID_AMRWB_Module | 0x0007)\r
71 \r
72 /**\r
73  * Get audio codec API interface\r
74  * \param pEncHandle [out] Return the AMRWB Encoder handle.\r
75  * \retval VO_ERR_OK Succeeded.\r
76  */\r
77 VO_S32 VO_API voGetAMRWBEncAPI(VO_AUDIO_CODECAPI *pEncHandle);\r
78 \r
79 \r
80 #pragma pack(pop)\r
81 #ifdef __cplusplus\r
82 } /* extern "C" */\r
83 #endif /* __cplusplus */\r
84 \r
85 \r
86 #endif   //__VOAMRWB_H__\r
87 \r