1d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber/* ------------------------------------------------------------------
2d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber * Copyright (C) 1998-2009 PacketVideo
3d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber *
4d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License");
5d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber * you may not use this file except in compliance with the License.
6d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber * You may obtain a copy of the License at
7d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber *
8d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber *      http://www.apache.org/licenses/LICENSE-2.0
9d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber *
10d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber * Unless required by applicable law or agreed to in writing, software
11d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS,
12d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
13d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber * express or implied.
14d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber * See the License for the specific language governing permissions
15d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber * and limitations under the License.
16d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber * -------------------------------------------------------------------
17d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber */
18d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber/****************************************************************************************
19d49b526dd2009270cb15f7fe4e70b74673950608Andreas HuberPortions of this file are derived from the following 3GPP standard:
20d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
21d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    3GPP TS 26.073
22d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    ANSI-C code for the Adaptive Multi-Rate (AMR) speech codec
23d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    Available from http://www.3gpp.org
24d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
25d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber(C) 2004, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TTA, TTC)
26d49b526dd2009270cb15f7fe4e70b74673950608Andreas HuberPermission to distribute, modify and use this file under the standard license
27d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huberterms listed above has been obtained from the copyright holder.
28d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber****************************************************************************************/
29d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber/*
30d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber------------------------------------------------------------------------------
31d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
32d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
33d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
34d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber Filename: /audio/gsm_amr/c/src/include/sp_enc.h
35d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
36d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber     Date: 02/07/2002
37d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
38d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber------------------------------------------------------------------------------
39d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber REVISION HISTORY
40d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
41d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber Description: Updated template. Changed the function names of
42d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber              Speech_Encode_Frame_reset and Speech_Encode_Frame_first to
43d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber              GSMEncodeFrameReset and GSMEncodeFrameFirst respectively for
44d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber              consistency.
45d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
46d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber Description: Reverted back to old function names Speech_Encode_Frame_reset()
47d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber              and Speech_Encode_Frame_First()
48d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
49d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber Description:  Replaced "int" and/or "char" with OSCL defined types.
50d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
51d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber Description: Moved _cplusplus #ifdef after Include section.
52d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
53d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber Description:
54d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
55d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber------------------------------------------------------------------------------
56d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber INCLUDE DESCRIPTION
57d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
58d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber       File             : sp_enc.h
59d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber       Purpose          : Encoding of one speech frame
60d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
61d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber------------------------------------------------------------------------------
62d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber*/
63d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
64d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber#ifndef sp_enc_h
65d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber#define sp_enc_h "$Id $"
66d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
67d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber/*----------------------------------------------------------------------------
68d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber; INCLUDES
69d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber----------------------------------------------------------------------------*/
70d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber#include "typedef.h"
71d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber#include "cnst.h"
72d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber#include "pre_proc.h"
73d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber#include "mode.h"
74d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber#include "cod_amr.h"
75d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
76d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber/*--------------------------------------------------------------------------*/
77d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber#ifdef __cplusplus
78d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huberextern "C"
79d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber{
80d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber#endif
81d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
82d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    /*----------------------------------------------------------------------------
83d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    ; MACROS
84d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    ; [Define module specific macros here]
85d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    ----------------------------------------------------------------------------*/
86d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
87d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    /*----------------------------------------------------------------------------
88d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    ; DEFINES
89d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    ; [Include all pre-processor statements here.]
90d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    ----------------------------------------------------------------------------*/
91d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
92d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
93d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    /*----------------------------------------------------------------------------
94d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    ; EXTERNAL VARIABLES REFERENCES
95d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    ; [Declare variables used in this module but defined elsewhere]
96d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    ----------------------------------------------------------------------------*/
97d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
98d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    /*----------------------------------------------------------------------------
99d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    ; SIMPLE TYPEDEF'S
100d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    ----------------------------------------------------------------------------*/
101d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
102d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    /*----------------------------------------------------------------------------
103d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    ; ENUMERATED TYPEDEF'S
104d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    ----------------------------------------------------------------------------*/
105d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
106d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    /*----------------------------------------------------------------------------
107d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    ; STRUCTURES TYPEDEF'S
108d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    ----------------------------------------------------------------------------*/
109d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    typedef struct
110d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    {
111d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber        Pre_ProcessState *pre_state;
112d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber        cod_amrState   *cod_amr_state;
113d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber        Flag dtx;
114d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    } Speech_Encode_FrameState;
115d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
116d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    /*----------------------------------------------------------------------------
117d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    ; GLOBAL FUNCTION DEFINITIONS
118d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    ; [List function prototypes here]
119d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    ----------------------------------------------------------------------------*/
120d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    /* initialize one instance of the speech encoder
121d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber       Stores pointer to filter status struct in *st. This pointer has to
122d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber       be passed to Speech_Encode_Frame in each call.
123d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber       returns 0 on success */
124d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    Word16 GSMInitEncode(void **state_data,
125d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber                         Flag   dtx,
126d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber                         Word8  *id);
127d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
128d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
129d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    /* reset speech encoder (i.e. set state memory to zero)
130d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber       returns 0 on success */
131d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    Word16 Speech_Encode_Frame_reset(void *state_data);
132d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
133d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    /* de-initialize speech encoder (i.e. free status struct)
134d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber       stores NULL in *s */
135d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    void GSMEncodeFrameExit(void **state_data);
136d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
137d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    void Speech_Encode_Frame_First(
138d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber        Speech_Encode_FrameState *st, /* i/o : post filter states     */
139d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber        Word16 *new_speech);          /* i   : speech input           */
140d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
141d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    void GSMEncodeFrame(
142d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber        void *state_data,             /* i/o : encoder states         */
143d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber        enum Mode mode,               /* i   : speech coder mode      */
144d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber        Word16 *new_speech,           /* i   : input speech           */
145d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber        Word16 *serial,               /* o   : serial bit stream      */
146d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber        enum Mode *usedMode           /* o   : used speech coder mode */
147d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber    );
148d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
149d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber#ifdef __cplusplus
150d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber}
151d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber#endif
152d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
153d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber#endif  /* _sp_enc_h_ */
154d49b526dd2009270cb15f7fe4e70b74673950608Andreas Huber
155