1 /* ------------------------------------------------------------------ 2 * Copyright (C) 1998-2009 PacketVideo 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13 * express or implied. 14 * See the License for the specific language governing permissions 15 * and limitations under the License. 16 * ------------------------------------------------------------------- 17 */ 18 /**************************************************************************************** 19 Portions of this file are derived from the following 3GPP standard: 20 21 3GPP TS 26.073 22 ANSI-C code for the Adaptive Multi-Rate (AMR) speech codec 23 Available from http://www.3gpp.org 24 25 (C) 2004, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC) 26 Permission to distribute, modify and use this file under the standard license 27 terms listed above has been obtained from the copyright holder. 28 ****************************************************************************************/ 29 /* 30 31 Pathname: ./audio/gsm-amr/c/include/frame_type_3gpp.h 32 33 ------------------------------------------------------------------------------ 34 REVISION HISTORY 35 36 Description: Updated to new PV C header template. 37 38 Description: Added #ifdef __cplusplus after Include section. 39 40 Who: Date: 41 Description: 42 43 ------------------------------------------------------------------------------ 44 INCLUDE DESCRIPTION 45 46 This file contains the definition of the 3GPP frame types. 47 48 ------------------------------------------------------------------------------ 49 */ 50 51 #ifndef FRAME_TYPE_3GPP_H 52 #define FRAME_TYPE_3GPP_H 53 54 /*---------------------------------------------------------------------------- 55 ; INCLUDES 56 ----------------------------------------------------------------------------*/ 57 58 59 /*--------------------------------------------------------------------------*/ 60 #ifdef __cplusplus 61 extern "C" 62 { 63 #endif 64 65 /*---------------------------------------------------------------------------- 66 ; MACROS 67 ; Define module specific macros here 68 ----------------------------------------------------------------------------*/ 69 70 /*---------------------------------------------------------------------------- 71 ; DEFINES 72 ; Include all pre-processor statements here. 73 ----------------------------------------------------------------------------*/ 74 75 /*---------------------------------------------------------------------------- 76 ; EXTERNAL VARIABLES REFERENCES 77 ; Declare variables used in this module but defined elsewhere 78 ----------------------------------------------------------------------------*/ 79 80 /*---------------------------------------------------------------------------- 81 ; SIMPLE TYPEDEF'S 82 ----------------------------------------------------------------------------*/ 83 84 /*---------------------------------------------------------------------------- 85 ; ENUMERATED TYPEDEF'S 86 ----------------------------------------------------------------------------*/ 87 88 enum Frame_Type_3GPP 89 { 90 AMR_475 = 0, /* 4.75 kbps */ 91 AMR_515, /* 5.15 kbps */ 92 AMR_59, /* 5.9 kbps */ 93 AMR_67, /* 6.7 kbps */ 94 AMR_74, /* 7.4 kbps */ 95 AMR_795, /* 7.95 kbps */ 96 AMR_102, /* 10.2 kbps */ 97 AMR_122, /* 12.2 kbps */ 98 AMR_SID, /* GSM AMR DTX */ 99 GSM_EFR_SID, /* GSM EFR DTX */ 100 TDMA_EFR_SID, /* TDMA EFR DTX */ 101 PDC_EFR_SID, /* PDC EFR DTX */ 102 FOR_FUTURE_USE1, /* Unused 1 */ 103 FOR_FUTURE_USE2, /* Unused 2 */ 104 FOR_FUTURE_USE3, /* Unused 3 */ 105 AMR_NO_DATA /* No data */ 106 }; 107 108 typedef enum 109 { 110 /* 111 * One word (2-byte) to indicate type of frame type. 112 * One word (2-byte) to indicate frame type. 113 * One word (2-byte) to indicate mode. 114 * N words (2-byte) containing N bits (bit 0 = 0xff81, bit 1 = 0x007f). 115 */ 116 ETS = 0, /* Both AMR-Narrowband and AMR-Wideband */ 117 118 /* 119 * One word (2-byte) for sync word (good frames: 0x6b21, bad frames: 0x6b20) 120 * One word (2-byte) for frame length N. 121 * N words (2-byte) containing N bits (bit 0 = 0x007f, bit 1 = 0x0081). 122 */ 123 ITU, /* AMR-Wideband */ 124 125 /* 126 * AMR-WB MIME/storage format, see RFC 3267 (sections 5.1 and 5.3) for details 127 */ 128 MIME_IETF, 129 130 WMF, /* AMR-Narrowband */ 131 132 IF2 /* AMR-Narrowband */ 133 134 } bitstream_format; 135 136 /*---------------------------------------------------------------------------- 137 ; STRUCTURES TYPEDEF'S 138 ----------------------------------------------------------------------------*/ 139 140 /*---------------------------------------------------------------------------- 141 ; GLOBAL FUNCTION DEFINITIONS 142 ; Function Prototype declaration 143 ----------------------------------------------------------------------------*/ 144 #ifdef __cplusplus 145 } 146 #endif 147 148 149 #endif /* _FRAME_TYPE_3GPP_H_ */ 150 151 152