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 32 33 34 Filename: /audio/gsm_amr/c/src/include/pitch_fr.h 35 36 Date: 02/04/2002 37 38 ------------------------------------------------------------------------------ 39 REVISION HISTORY 40 41 Description: Replaced "int" and/or "char" with OSCL defined types. 42 43 Description: Moved _cplusplus #ifdef after Include section. 44 45 Description: 46 47 ------------------------------------------------------------------------------ 48 INCLUDE DESCRIPTION 49 50 File : pitch_fr.h 51 Purpose : Find the pitch period with 1/3 or 1/6 subsample 52 : resolution (closed loop). 53 54 ------------------------------------------------------------------------------ 55 */ 56 57 #ifndef _PITCH_FR_H_ 58 #define _PITCH_FR_H_ 59 #define pitch_fr_h "$Id $" 60 61 /*---------------------------------------------------------------------------- 62 ; INCLUDES 63 ----------------------------------------------------------------------------*/ 64 #include "typedef.h" 65 #include "mode.h" 66 67 /*--------------------------------------------------------------------------*/ 68 #ifdef __cplusplus 69 extern "C" 70 { 71 #endif 72 73 /*---------------------------------------------------------------------------- 74 ; MACROS 75 ; [Define module specific macros here] 76 ----------------------------------------------------------------------------*/ 77 78 /*---------------------------------------------------------------------------- 79 ; DEFINES 80 ; [Include all pre-processor statements here.] 81 ----------------------------------------------------------------------------*/ 82 83 /*---------------------------------------------------------------------------- 84 ; EXTERNAL VARIABLES REFERENCES 85 ; [Declare variables used in this module but defined elsewhere] 86 ----------------------------------------------------------------------------*/ 87 88 /*---------------------------------------------------------------------------- 89 ; SIMPLE TYPEDEF'S 90 ----------------------------------------------------------------------------*/ 91 92 /*---------------------------------------------------------------------------- 93 ; ENUMERATED TYPEDEF'S 94 ----------------------------------------------------------------------------*/ 95 96 /*---------------------------------------------------------------------------- 97 ; STRUCTURES TYPEDEF'S 98 ----------------------------------------------------------------------------*/ 99 typedef struct 100 { 101 Word16 T0_prev_subframe; /* integer pitch lag of previous sub-frame */ 102 } Pitch_frState; 103 104 /*---------------------------------------------------------------------------- 105 ; GLOBAL FUNCTION DEFINITIONS 106 ; [List function prototypes here] 107 ----------------------------------------------------------------------------*/ 108 109 Word16 Pitch_fr_init(Pitch_frState **st); 110 /* initialize one instance of the pre processing state. 111 Stores pointer to filter status struct in *st. This pointer has to 112 be passed to Pitch_fr in each call. 113 returns 0 on success 114 */ 115 116 Word16 Pitch_fr_reset(Pitch_frState *st); 117 /* reset of pre processing state (i.e. set state memory to zero) 118 returns 0 on success 119 */ 120 121 void Pitch_fr_exit(Pitch_frState **st); 122 /* de-initialize pre processing state (i.e. free status struct) 123 stores NULL in *st 124 */ 125 126 Word16 Pitch_fr( /* o : pitch period (integer) */ 127 Pitch_frState *st, /* i/o : State struct */ 128 enum Mode mode, /* i : codec mode */ 129 Word16 T_op[], /* i : open loop pitch lags */ 130 Word16 exc[], /* i : excitation buffer */ 131 Word16 xn[], /* i : target vector */ 132 Word16 h[], /* i : impulse response of synthesis and 133 weighting filters */ 134 Word16 L_subfr, /* i : Length of subframe */ 135 Word16 i_subfr, /* i : subframe offset */ 136 Word16 *pit_frac, /* o : pitch period (fractional) */ 137 Word16 *resu3, /* o : subsample resolution 1/3 (=1) or 1/6 (=0) */ 138 Word16 *ana_index, /* o : index of encoding */ 139 Flag *pOverflow 140 ); 141 142 #ifdef __cplusplus 143 } 144 #endif 145 146 #endif /* _PITCH_FR_H_ */ 147 148 149