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