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/****************************************************************************************
19Portions 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)
26Permission to distribute, modify and use this file under the standard license
27terms listed above has been obtained from the copyright holder.
28****************************************************************************************/
29/*
30------------------------------------------------------------------------------
31
32
33 Pathname: .audio/gsm-amr/c/src/dec_input_format_tab.c
34
35     Date: 03/01/2002
36
37------------------------------------------------------------------------------
38 REVISION HISTORY
39
40 Description: Renamed BytesThisFrame to WmfBytesPerFrame, changed its type
41              from 'const short' to 'const int'. Added If2BytesPerFrame
42              table for IF2 input format. Updated copyright year and I/O
43              definition sections, and added reference document for IF2.
44
45 Description: Renamed WmfBytesPerFrame to WmfDecBytesPerFrame, and
46              If2BytesPerFrame to If2DecBytesPerFrame.
47
48 Description: Added #ifdef __cplusplus and removed "extern" from table
49              definition.
50
51 Description: Put "extern" back.
52
53 Description:
54
55------------------------------------------------------------------------------
56 INPUT AND OUTPUT DEFINITIONS
57
58 Inputs:
59    None
60
61 Outputs:
62    None
63
64 Returns:
65    None
66
67 Global Variables Used:
68    None
69
70 Local Variables Needed:
71    None
72
73------------------------------------------------------------------------------
74 FUNCTION DESCRIPTION
75
76 This file contains the tables of the number of data bytes per codec mode in
77 both WMF and IF2 input formats.
78
79------------------------------------------------------------------------------
80 REQUIREMENTS
81
82 None
83
84------------------------------------------------------------------------------
85 REFERENCES
86
87 [1] AMR Speech Codec Frame Structure, 3GPP TS 26.101 version 4.1.0 Release 4,
88     June 2001
89
90------------------------------------------------------------------------------
91 PSEUDO-CODE
92
93
94------------------------------------------------------------------------------
95 RESOURCES USED
96   When the code is written for a specific target processor the
97     the resources used should be documented below.
98
99 STACK USAGE: [stack count for this module] + [variable to represent
100          stack usage for each subroutine called]
101
102     where: [stack usage variable] = stack usage for [subroutine
103         name] (see [filename].ext)
104
105 DATA MEMORY USED: x words
106
107 PROGRAM MEMORY USED: x words
108
109 CLOCK CYCLES: [cycle count equation for this module] + [variable
110           used to represent cycle count for each subroutine
111           called]
112
113     where: [cycle count variable] = cycle count for [subroutine
114        name] (see [filename].ext)
115
116------------------------------------------------------------------------------
117*/
118
119
120/*----------------------------------------------------------------------------
121; INCLUDES
122----------------------------------------------------------------------------*/
123#include "typedef.h"
124#include "amrdecode.h"
125
126/*--------------------------------------------------------------------------*/
127#ifdef __cplusplus
128extern "C"
129{
130#endif
131
132    /*----------------------------------------------------------------------------
133    ; MACROS
134    ; Define module specific macros here
135    ----------------------------------------------------------------------------*/
136
137
138    /*----------------------------------------------------------------------------
139    ; DEFINES
140    ; Include all pre-processor statements here. Include conditional
141    ; compile variables also.
142    ----------------------------------------------------------------------------*/
143
144    /*----------------------------------------------------------------------------
145    ; LOCAL FUNCTION DEFINITIONS
146    ; Function Prototype declaration
147    ----------------------------------------------------------------------------*/
148
149
150    /*----------------------------------------------------------------------------
151    ; LOCAL STORE/BUFFER/POINTER DEFINITIONS
152    ; Variable declaration - defined here and used outside this module
153    ----------------------------------------------------------------------------*/
154    /* Table containing the number of core AMR data bytes for                */
155    /* each codec mode for WMF input format(number excludes frame type byte) */
156    const Word16 WmfDecBytesPerFrame[16] =
157    {
158        12, /* 4.75 */
159        13, /* 5.15 */
160        15, /* 5.90 */
161        17, /* 6.70 */
162        19, /* 7.40 */
163        20, /* 7.95 */
164        26, /* 10.2 */
165        31, /* 12.2 */
166        5, /* GsmAmr comfort noise */
167        6, /* Gsm-Efr comfort noise */
168        5, /* IS-641 comfort noise */
169        5, /* Pdc-Efr comfort noise */
170        0, /* future use */
171        0, /* future use */
172        0, /* future use */
173        0 /* No transmission */
174    };
175
176    /* Table containing the number of core AMR data bytes for   */
177    /* each codec mode for IF2 input format.                    */
178    const Word16 If2DecBytesPerFrame[16] =
179    {
180        13, /* 4.75 */
181        14, /* 5.15 */
182        16, /* 5.90 */
183        18, /* 6.70 */
184        19, /* 7.40 */
185        21, /* 7.95 */
186        26, /* 10.2 */
187        31, /* 12.2 */
188        6, /* GsmAmr comfort noise */
189        6, /* Gsm-Efr comfort noise */
190        6, /* IS-641 comfort noise */
191        6, /* Pdc-Efr comfort noise */
192        0, /* future use */
193        0, /* future use */
194        0, /* future use */
195        1 /* No transmission */
196    };
197
198    /*----------------------------------------------------------------------------
199    ; EXTERNAL FUNCTION REFERENCES
200    ; Declare functions defined elsewhere and referenced in this module
201    ----------------------------------------------------------------------------*/
202
203
204    /*----------------------------------------------------------------------------
205    ; EXTERNAL GLOBAL STORE/BUFFER/POINTER REFERENCES
206    ; Declare variables used in this module but defined elsewhere
207    ----------------------------------------------------------------------------*/
208
209
210    /*--------------------------------------------------------------------------*/
211#ifdef __cplusplus
212}
213#endif
214
215/*----------------------------------------------------------------------------
216; FUNCTION CODE
217----------------------------------------------------------------------------*/
218
219/*----------------------------------------------------------------------------
220; Define all local variables
221----------------------------------------------------------------------------*/
222
223
224/*----------------------------------------------------------------------------
225; Function body here
226----------------------------------------------------------------------------*/
227
228
229/*----------------------------------------------------------------------------
230; Return nothing or data or data pointer
231----------------------------------------------------------------------------*/
232
233
234