OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
(...skipping 13 matching lines...) Expand all Loading... |
24 | 24 |
25 void WebRtcIsac_ResetBitstream(Bitstr* bit_stream); | 25 void WebRtcIsac_ResetBitstream(Bitstr* bit_stream); |
26 | 26 |
27 int WebRtcIsac_EstimateBandwidth(BwEstimatorstr* bwest_str, Bitstr* streamdata, | 27 int WebRtcIsac_EstimateBandwidth(BwEstimatorstr* bwest_str, Bitstr* streamdata, |
28 int32_t packet_size, | 28 int32_t packet_size, |
29 uint16_t rtp_seq_number, | 29 uint16_t rtp_seq_number, |
30 uint32_t send_ts, uint32_t arr_ts, | 30 uint32_t send_ts, uint32_t arr_ts, |
31 enum IsacSamplingRate encoderSampRate, | 31 enum IsacSamplingRate encoderSampRate, |
32 enum IsacSamplingRate decoderSampRate); | 32 enum IsacSamplingRate decoderSampRate); |
33 | 33 |
34 int WebRtcIsac_DecodeLb(float* signal_out, ISACLBDecStruct* ISACdec_obj, | 34 int WebRtcIsac_DecodeLb(const TransformTables* transform_tables, |
| 35 float* signal_out, |
| 36 ISACLBDecStruct* ISACdec_obj, |
35 int16_t* current_framesamples, | 37 int16_t* current_framesamples, |
36 int16_t isRCUPayload); | 38 int16_t isRCUPayload); |
37 | 39 |
38 int WebRtcIsac_DecodeRcuLb(float* signal_out, ISACLBDecStruct* ISACdec_obj, | 40 int WebRtcIsac_DecodeRcuLb(float* signal_out, ISACLBDecStruct* ISACdec_obj, |
39 int16_t* current_framesamples); | 41 int16_t* current_framesamples); |
40 | 42 |
41 int WebRtcIsac_EncodeLb(float* in, ISACLBEncStruct* ISACencLB_obj, | 43 int WebRtcIsac_EncodeLb(const TransformTables* transform_tables, |
42 int16_t codingMode, int16_t | 44 float* in, |
43 bottleneckIndex); | 45 ISACLBEncStruct* ISACencLB_obj, |
| 46 int16_t codingMode, |
| 47 int16_t bottleneckIndex); |
44 | 48 |
45 int WebRtcIsac_EncodeStoredDataLb(const IsacSaveEncoderData* ISACSavedEnc_obj, | 49 int WebRtcIsac_EncodeStoredDataLb(const IsacSaveEncoderData* ISACSavedEnc_obj, |
46 Bitstr* ISACBitStr_obj, int BWnumber, | 50 Bitstr* ISACBitStr_obj, int BWnumber, |
47 float scale); | 51 float scale); |
48 | 52 |
49 int WebRtcIsac_EncodeStoredDataUb( | 53 int WebRtcIsac_EncodeStoredDataUb( |
50 const ISACUBSaveEncDataStruct* ISACSavedEnc_obj, Bitstr* bitStream, | 54 const ISACUBSaveEncDataStruct* ISACSavedEnc_obj, Bitstr* bitStream, |
51 int32_t jitterInfo, float scale, enum ISACBandwidth bandwidth); | 55 int32_t jitterInfo, float scale, enum ISACBandwidth bandwidth); |
52 | 56 |
53 int16_t WebRtcIsac_GetRedPayloadUb( | 57 int16_t WebRtcIsac_GetRedPayloadUb( |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 * Input/Output: | 90 * Input/Output: |
87 * -ISACdec_obj : pointer to the upper-band decoder object. The | 91 * -ISACdec_obj : pointer to the upper-band decoder object. The |
88 * bit-stream is stored inside the decoder object. | 92 * bit-stream is stored inside the decoder object. |
89 * | 93 * |
90 * Output: | 94 * Output: |
91 * -signal_out : decoded audio, 480 samples 30 ms. | 95 * -signal_out : decoded audio, 480 samples 30 ms. |
92 * | 96 * |
93 * Return value : >0 number of decoded bytes. | 97 * Return value : >0 number of decoded bytes. |
94 * <0 if an error occurred. | 98 * <0 if an error occurred. |
95 */ | 99 */ |
96 int WebRtcIsac_DecodeUb16(float* signal_out, ISACUBDecStruct* ISACdec_obj, | 100 int WebRtcIsac_DecodeUb16(const TransformTables* transform_tables, |
| 101 float* signal_out, |
| 102 ISACUBDecStruct* ISACdec_obj, |
97 int16_t isRCUPayload); | 103 int16_t isRCUPayload); |
98 | 104 |
99 | |
100 /****************************************************************************** | 105 /****************************************************************************** |
101 * WebRtcIsac_DecodeUb12() | 106 * WebRtcIsac_DecodeUb12() |
102 * | 107 * |
103 * Decode the upper-band if the codec is in 0-12 kHz mode. | 108 * Decode the upper-band if the codec is in 0-12 kHz mode. |
104 * | 109 * |
105 * Input/Output: | 110 * Input/Output: |
106 * -ISACdec_obj : pointer to the upper-band decoder object. The | 111 * -ISACdec_obj : pointer to the upper-band decoder object. The |
107 * bit-stream is stored inside the decoder object. | 112 * bit-stream is stored inside the decoder object. |
108 * | 113 * |
109 * Output: | 114 * Output: |
110 * -signal_out : decoded audio, 480 samples 30 ms. | 115 * -signal_out : decoded audio, 480 samples 30 ms. |
111 * | 116 * |
112 * Return value : >0 number of decoded bytes. | 117 * Return value : >0 number of decoded bytes. |
113 * <0 if an error occurred. | 118 * <0 if an error occurred. |
114 */ | 119 */ |
115 int WebRtcIsac_DecodeUb12(float* signal_out, ISACUBDecStruct* ISACdec_obj, | 120 int WebRtcIsac_DecodeUb12(const TransformTables* transform_tables, |
| 121 float* signal_out, |
| 122 ISACUBDecStruct* ISACdec_obj, |
116 int16_t isRCUPayload); | 123 int16_t isRCUPayload); |
117 | 124 |
118 | |
119 /****************************************************************************** | 125 /****************************************************************************** |
120 * WebRtcIsac_EncodeUb16() | 126 * WebRtcIsac_EncodeUb16() |
121 * | 127 * |
122 * Encode the upper-band if the codec is in 0-16 kHz mode. | 128 * Encode the upper-band if the codec is in 0-16 kHz mode. |
123 * | 129 * |
124 * Input: | 130 * Input: |
125 * -in : upper-band audio, 160 samples (10 ms). | 131 * -in : upper-band audio, 160 samples (10 ms). |
126 * | 132 * |
127 * Input/Output: | 133 * Input/Output: |
128 * -ISACdec_obj : pointer to the upper-band encoder object. The | 134 * -ISACdec_obj : pointer to the upper-band encoder object. The |
129 * bit-stream is stored inside the encoder object. | 135 * bit-stream is stored inside the encoder object. |
130 * | 136 * |
131 * Return value : >0 number of encoded bytes. | 137 * Return value : >0 number of encoded bytes. |
132 * <0 if an error occurred. | 138 * <0 if an error occurred. |
133 */ | 139 */ |
134 int WebRtcIsac_EncodeUb16(float* in, ISACUBEncStruct* ISACenc_obj, | 140 int WebRtcIsac_EncodeUb16(const TransformTables* transform_tables, |
| 141 float* in, |
| 142 ISACUBEncStruct* ISACenc_obj, |
135 int32_t jitterInfo); | 143 int32_t jitterInfo); |
136 | 144 |
137 | |
138 /****************************************************************************** | 145 /****************************************************************************** |
139 * WebRtcIsac_EncodeUb12() | 146 * WebRtcIsac_EncodeUb12() |
140 * | 147 * |
141 * Encode the upper-band if the codec is in 0-12 kHz mode. | 148 * Encode the upper-band if the codec is in 0-12 kHz mode. |
142 * | 149 * |
143 * Input: | 150 * Input: |
144 * -in : upper-band audio, 160 samples (10 ms). | 151 * -in : upper-band audio, 160 samples (10 ms). |
145 * | 152 * |
146 * Input/Output: | 153 * Input/Output: |
147 * -ISACdec_obj : pointer to the upper-band encoder object. The | 154 * -ISACdec_obj : pointer to the upper-band encoder object. The |
148 * bit-stream is stored inside the encoder object. | 155 * bit-stream is stored inside the encoder object. |
149 * | 156 * |
150 * Return value : >0 number of encoded bytes. | 157 * Return value : >0 number of encoded bytes. |
151 * <0 if an error occurred. | 158 * <0 if an error occurred. |
152 */ | 159 */ |
153 int WebRtcIsac_EncodeUb12(float* in, ISACUBEncStruct* ISACenc_obj, | 160 int WebRtcIsac_EncodeUb12(const TransformTables* transform_tables, |
| 161 float* in, |
| 162 ISACUBEncStruct* ISACenc_obj, |
154 int32_t jitterInfo); | 163 int32_t jitterInfo); |
155 | 164 |
156 /************************** initialization functions *************************/ | 165 /************************** initialization functions *************************/ |
157 | 166 |
158 void WebRtcIsac_InitMasking(MaskFiltstr* maskdata); | 167 void WebRtcIsac_InitMasking(MaskFiltstr* maskdata); |
159 | 168 |
160 void WebRtcIsac_InitPreFilterbank(PreFiltBankstr* prefiltdata); | 169 void WebRtcIsac_InitPreFilterbank(PreFiltBankstr* prefiltdata); |
161 | 170 |
162 void WebRtcIsac_InitPostFilterbank(PostFiltBankstr* postfiltdata); | 171 void WebRtcIsac_InitPostFilterbank(PostFiltBankstr* postfiltdata); |
163 | 172 |
164 void WebRtcIsac_InitPitchFilter(PitchFiltstr* pitchfiltdata); | 173 void WebRtcIsac_InitPitchFilter(PitchFiltstr* pitchfiltdata); |
165 | 174 |
166 void WebRtcIsac_InitPitchAnalysis(PitchAnalysisStruct* State); | 175 void WebRtcIsac_InitPitchAnalysis(PitchAnalysisStruct* State); |
167 | 176 |
168 | 177 |
169 /**************************** transform functions ****************************/ | 178 /**************************** transform functions ****************************/ |
170 | 179 |
171 void WebRtcIsac_InitTransform(); | 180 void WebRtcIsac_InitTransform(TransformTables* tables); |
172 | 181 |
173 void WebRtcIsac_Time2Spec(double* inre1, double* inre2, int16_t* outre, | 182 void WebRtcIsac_Time2Spec(const TransformTables* tables, |
174 int16_t* outim, FFTstr* fftstr_obj); | 183 double* inre1, |
| 184 double* inre2, |
| 185 int16_t* outre, |
| 186 int16_t* outim, |
| 187 FFTstr* fftstr_obj); |
175 | 188 |
176 void WebRtcIsac_Spec2time(double* inre, double* inim, double* outre1, | 189 void WebRtcIsac_Spec2time(const TransformTables* tables, |
177 double* outre2, FFTstr* fftstr_obj); | 190 double* inre, |
178 | 191 double* inim, |
| 192 double* outre1, |
| 193 double* outre2, |
| 194 FFTstr* fftstr_obj); |
179 | 195 |
180 /******************************* filter functions ****************************/ | 196 /******************************* filter functions ****************************/ |
181 | 197 |
182 void WebRtcIsac_AllPoleFilter(double* InOut, double* Coef, int lengthInOut, | 198 void WebRtcIsac_AllPoleFilter(double* InOut, double* Coef, int lengthInOut, |
183 int orderCoef); | 199 int orderCoef); |
184 | 200 |
185 void WebRtcIsac_AllZeroFilter(double* In, double* Coef, int lengthInOut, | 201 void WebRtcIsac_AllZeroFilter(double* In, double* Coef, int lengthInOut, |
186 int orderCoef, double* Out); | 202 int orderCoef, double* Out); |
187 | 203 |
188 void WebRtcIsac_ZeroPoleFilter(double* In, double* ZeroCoef, double* PoleCoef, | 204 void WebRtcIsac_ZeroPoleFilter(double* In, double* ZeroCoef, double* PoleCoef, |
(...skipping 19 matching lines...) Expand all Loading... |
208 | 224 |
209 void WebRtcIsac_NormLatticeFilterAr(int orderCoef, float* stateF, float* stateG, | 225 void WebRtcIsac_NormLatticeFilterAr(int orderCoef, float* stateF, float* stateG, |
210 double* lat_in, double* lo_filt_coef, | 226 double* lat_in, double* lo_filt_coef, |
211 float* lat_out); | 227 float* lat_out); |
212 | 228 |
213 void WebRtcIsac_Dir2Lat(double* a, int orderCoef, float* sth, float* cth); | 229 void WebRtcIsac_Dir2Lat(double* a, int orderCoef, float* sth, float* cth); |
214 | 230 |
215 void WebRtcIsac_AutoCorr(double* r, const double* x, int N, int order); | 231 void WebRtcIsac_AutoCorr(double* r, const double* x, int N, int order); |
216 | 232 |
217 #endif /* WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_SOURCE_CODEC_H_ */ | 233 #endif /* WEBRTC_MODULES_AUDIO_CODING_CODECS_ISAC_MAIN_SOURCE_CODEC_H_ */ |
OLD | NEW |