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
34 Filename: /audio/gsm-amr/c/include/amrencode.h
35
36     Date: 02/01/2002
37
38------------------------------------------------------------------------------
39 REVISION HISTORY
40
41 Description: Removed hard tabs from file.
42
43 Description: Added #define for WMF and IF2, and updated function prototype.
44
45 Description: Renamed WMF to AMR_WMF, IF2 to AMR_IF2, and added AMR_ETS.
46
47 Description: Changed output_type to output_format.
48
49 Description: Added external reference to WmfEncBytesPerFrame and
50              If2EncBytesPerFrame tables.
51
52 Description: Updated function prototype for AMREncode(). Added function
53              prototype for AMREncodeInit, AMREncodeReset, and AMREncodeExit.
54              Added #defines for TX SID frame formatting.
55
56 Description:  Replaced "int" and/or "char" with OSCL defined types.
57
58 Description: Moved _cplusplus #ifdef after Include section.
59
60 Description:
61
62------------------------------------------------------------------------------
63 INCLUDE DESCRIPTION
64
65 This file contains the function prototype of AMREncode.
66
67------------------------------------------------------------------------------
68*/
69
70#ifndef _AMRENCODE_H_
71#define _AMRENCODE_H_
72
73/*----------------------------------------------------------------------------
74; INCLUDES
75----------------------------------------------------------------------------*/
76#include "typedef.h"
77#include "mode.h"
78#include "frame_type_3gpp.h"
79
80/*--------------------------------------------------------------------------*/
81#ifdef __cplusplus
82extern "C"
83{
84#endif
85
86    /*----------------------------------------------------------------------------
87    ; MACROS
88    ; [Define module specific macros here]
89    ----------------------------------------------------------------------------*/
90
91    /*----------------------------------------------------------------------------
92    ; DEFINES
93    ; [Include all pre-processor statements here.]
94    ----------------------------------------------------------------------------*/
95#define NUM_AMRSID_TXMODE_BITS     3
96#define AMRSID_TXMODE_BIT_OFFSET   36
97#define AMRSID_TXTYPE_BIT_OFFSET   35
98
99    /* Output format types */
100#define AMR_TX_WMF 0
101#define AMR_TX_IF2 1
102#define AMR_TX_ETS 2
103
104    /*----------------------------------------------------------------------------
105    ; EXTERNAL VARIABLES REFERENCES
106    ; [Declare variables used in this module but defined elsewhere]
107    ----------------------------------------------------------------------------*/
108    extern const Word16 WmfEncBytesPerFrame[];
109    extern const Word16 If2EncBytesPerFrame[];
110
111    /*----------------------------------------------------------------------------
112    ; SIMPLE TYPEDEF'S
113    ----------------------------------------------------------------------------*/
114
115    /*----------------------------------------------------------------------------
116    ; ENUMERATED TYPEDEF'S
117    ----------------------------------------------------------------------------*/
118
119    /*----------------------------------------------------------------------------
120    ; STRUCTURES TYPEDEF'S
121    ----------------------------------------------------------------------------*/
122
123    /*----------------------------------------------------------------------------
124    ; GLOBAL FUNCTION DEFINITIONS
125    ; [List function prototypes here]
126    ----------------------------------------------------------------------------*/
127    Word16 AMREncodeInit(
128        void **pEncStructure,
129        void **pSidSyncStructure,
130        Flag dtx_enable);
131
132    Word16 AMREncodeReset(
133        void *pEncStructure,
134        void *pSidSyncStructure);
135
136    void AMREncodeExit(
137        void **pEncStructure,
138        void **pSidSyncStructure);
139
140    Word16 AMREncode(
141        void *pEncState,
142        void *pSidSyncState,
143        enum Mode mode,
144        Word16 *pEncInput,
145        UWord8 *pEncOutput,
146        enum Frame_Type_3GPP *p3gpp_frame_type,
147        Word16 output_format
148    );
149
150#ifdef __cplusplus
151}
152#endif
153
154#endif  /* _AMRENCODE_H_ */
155
156
157