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 Filename: /audio/gsm_amr/c/src/include/p_ol_wgh.h 32 33 ------------------------------------------------------------------------------ 34 REVISION HISTORY 35 36 Description: Replaced "int" and/or "char" with OSCL defined types. 37 38 Description: Moved _cplusplus #ifdef after Include section. 39 40 Who: Date: 41 Description: 42 43 ------------------------------------------------------------------------------ 44 INCLUDE DESCRIPTION 45 46 File : p_ol_wgh.h 47 Purpose : Compute the open loop pitch lag with weighting. 48 49 ------------------------------------------------------------------------------ 50 */ 51 52 #ifndef P_OL_WGH_H 53 #define P_OL_WGH_H "$Id $" 54 55 /*---------------------------------------------------------------------------- 56 ; INCLUDES 57 ----------------------------------------------------------------------------*/ 58 #include "typedef.h" 59 #include "mode.h" 60 #include "vad.h" 61 62 /*--------------------------------------------------------------------------*/ 63 #ifdef __cplusplus 64 extern "C" 65 { 66 #endif 67 68 /*---------------------------------------------------------------------------- 69 ; MACROS 70 ; [Define module specific macros here] 71 ----------------------------------------------------------------------------*/ 72 73 /*---------------------------------------------------------------------------- 74 ; DEFINES 75 ; [Include all pre-processor statements here.] 76 ----------------------------------------------------------------------------*/ 77 78 /*---------------------------------------------------------------------------- 79 ; EXTERNAL VARIABLES REFERENCES 80 ; [Declare variables used in this module but defined elsewhere] 81 ----------------------------------------------------------------------------*/ 82 extern const Word16 corrweight[]; 83 84 /*---------------------------------------------------------------------------- 85 ; SIMPLE TYPEDEF'S 86 ----------------------------------------------------------------------------*/ 87 88 /*---------------------------------------------------------------------------- 89 ; ENUMERATED TYPEDEF'S 90 ----------------------------------------------------------------------------*/ 91 92 /*---------------------------------------------------------------------------- 93 ; STRUCTURES TYPEDEF'S 94 ----------------------------------------------------------------------------*/ 95 /* state variable */ 96 97 typedef struct 98 { 99 Word16 old_T0_med; 100 Word16 ada_w; 101 Word16 wght_flg; 102 } pitchOLWghtState; 103 104 /*---------------------------------------------------------------------------- 105 ; GLOBAL FUNCTION DEFINITIONS 106 ; [List function prototypes here] 107 ----------------------------------------------------------------------------*/ 108 Word16 p_ol_wgh_init(pitchOLWghtState **st); 109 /* initialize one instance of the pre processing state. 110 Stores pointer to filter status struct in *st. This pointer has to 111 be passed to p_ol_wgh in each call. 112 returns 0 on success 113 */ 114 115 Word16 p_ol_wgh_reset(pitchOLWghtState *st); 116 /* reset of pre processing state (i.e. set state memory to zero) 117 returns 0 on success 118 */ 119 120 void p_ol_wgh_exit(pitchOLWghtState **st); 121 /* de-initialize pre processing state (i.e. free status struct) 122 stores NULL in *st 123 */ 124 125 Word16 Pitch_ol_wgh( /* o : open loop pitch lag */ 126 pitchOLWghtState *st, /* i/o : State struct */ 127 vadState *vadSt, /* i/o : VAD state struct */ 128 Word16 signal[], /* i : signal used to compute the open loop pitch */ 129 /* signal[-pit_max] to signal[-1] should be known */ 130 Word16 pit_min, /* i : minimum pitch lag */ 131 Word16 pit_max, /* i : maximum pitch lag */ 132 Word16 L_frame, /* i : length of frame to compute pitch */ 133 Word16 old_lags[], /* i : history with old stored Cl lags */ 134 Word16 ol_gain_flg[], /* i : OL gain flag */ 135 Word16 idx, /* i : index */ 136 Flag dtx, /* i : dtx flag; use dtx=1, do not use dtx=0 */ 137 Flag *pOverflow /* o : overflow flag */ 138 ); 139 140 #ifdef __cplusplus 141 } 142 #endif 143 144 #endif /* _P_OL_WGH_H_ */ 145