p_ol_wgh.h revision 4f1efc098cb5791c3e9f483f2af84aef70d2d0a0
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 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
64extern "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