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 20 Pathname: s_TNS_frame_info.h 21 22 ------------------------------------------------------------------------------ 23 REVISION HISTORY 24 25 Description: Modified to eliminate triple-nested structure, which wasted 26 2 KB of memory. 27 28 Description: 29 (1) Modified to include the lines... 30 31 #ifdef __cplusplus 32 extern "C" { 33 #endif 34 35 #ifdef __cplusplus 36 } 37 #endif 38 39 (2) Updated the copyright header. 40 41 Description: 42 (1) Changed hard coded size of arrays from "8" to "TNS_MAX_WIN" 43 (2) Moved elements from s_TNSinfo.h up to the level of TNS_frame_info 44 (3) Added Bool "tns_data_present" for future use. 45 (4) Moved lpc_coef up from s_TNSfilt.h (allowed for use of smaller array.) 46 47 Description: 48 (1) Removed the array "coef_res", which is now a local variable on the 49 stack inside get_tns.c 50 51 Who: Date: 52 Description: 53 54 ------------------------------------------------------------------------------ 55 INCLUDE DESCRIPTION 56 57 This include file defines the structure, s_TNS_frame_info 58 59 ------------------------------------------------------------------------------ 60 */ 61 62 /*---------------------------------------------------------------------------- 63 ; CONTINUE ONLY IF NOT ALREADY DEFINED 64 ----------------------------------------------------------------------------*/ 65 #ifndef S_TNS_FRAME_INFO_H 66 #define S_TNS_FRAME_INFO_H 67 68 #ifdef __cplusplus 69 extern "C" 70 { 71 #endif 72 73 /*---------------------------------------------------------------------------- 74 ; INCLUDES 75 ----------------------------------------------------------------------------*/ 76 #include "pv_audio_type_defs.h" 77 #include "e_tns_const.h" 78 #include "s_tnsfilt.h" 79 80 /*---------------------------------------------------------------------------- 81 ; MACROS 82 ; Define module specific macros here 83 ----------------------------------------------------------------------------*/ 84 85 /*---------------------------------------------------------------------------- 86 ; DEFINES 87 ; Include all pre-processor statements here. 88 ----------------------------------------------------------------------------*/ 89 90 /*---------------------------------------------------------------------------- 91 ; EXTERNAL VARIABLES REFERENCES 92 ; Declare variables used in this module but defined elsewhere 93 ----------------------------------------------------------------------------*/ 94 95 /*---------------------------------------------------------------------------- 96 ; SIMPLE TYPEDEF'S 97 ----------------------------------------------------------------------------*/ 98 99 /*---------------------------------------------------------------------------- 100 ; ENUMERATED TYPEDEF'S 101 ----------------------------------------------------------------------------*/ 102 103 /*---------------------------------------------------------------------------- 104 ; STRUCTURES TYPEDEF'S 105 ----------------------------------------------------------------------------*/ 106 typedef struct 107 { 108 Bool tns_data_present; 109 110 /* Information about the number of filters for each window. */ 111 Int n_filt[TNS_MAX_WIN]; 112 113 /* 114 * Filter Information 115 * 116 * For short windows, there is a maximum of 117 * 1 filter per window (8 total) 118 * 119 * For long windows, there is a maximum of 3 filters 120 * 121 */ 122 TNSfilt filt[TNS_MAX_WIN]; 123 124 /* 125 * For short windows, there is a maximum of 8 filters, 126 * each of order 7 (requring 56 Ints) 127 * 128 * For long windows, there is a maximum of 3 filters, 129 * each of order 20 (requiring 60 Ints) 130 * 131 * So, 3*TNS_MAX_ORDER declares an array of sufficient 132 * size (60) for both cases. 133 */ 134 Int32 lpc_coef[3*TNS_MAX_ORDER]; 135 136 } TNS_frame_info; 137 138 /*---------------------------------------------------------------------------- 139 ; GLOBAL FUNCTION DEFINITIONS 140 ; Function Prototype declaration 141 ----------------------------------------------------------------------------*/ 142 143 #ifdef __cplusplus 144 } 145 #endif 146 147 #endif /* S_TNS_FRAME_INFO_H */ 148