Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(202)

Side by Side Diff: webrtc/common_audio/signal_processing/include/signal_processing_library.h

Issue 1305983003: Convert some more things to size_t. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Support Android's C89 mode Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 142
143 // Minimum and maximum operation functions and their pointers. 143 // Minimum and maximum operation functions and their pointers.
144 // Implementation in min_max_operations.c. 144 // Implementation in min_max_operations.c.
145 145
146 // Returns the largest absolute value in a signed 16-bit vector. 146 // Returns the largest absolute value in a signed 16-bit vector.
147 // 147 //
148 // Input: 148 // Input:
149 // - vector : 16-bit input vector. 149 // - vector : 16-bit input vector.
150 // - length : Number of samples in vector. 150 // - length : Number of samples in vector.
151 // 151 //
152 // Return value : Maximum absolute value in vector; 152 // Return value : Maximum absolute value in vector.
153 // or -1, if (vector == NULL || length == 0).
154 typedef int16_t (*MaxAbsValueW16)(const int16_t* vector, size_t length); 153 typedef int16_t (*MaxAbsValueW16)(const int16_t* vector, size_t length);
155 extern MaxAbsValueW16 WebRtcSpl_MaxAbsValueW16; 154 extern MaxAbsValueW16 WebRtcSpl_MaxAbsValueW16;
156 int16_t WebRtcSpl_MaxAbsValueW16C(const int16_t* vector, size_t length); 155 int16_t WebRtcSpl_MaxAbsValueW16C(const int16_t* vector, size_t length);
157 #if (defined WEBRTC_DETECT_NEON) || (defined WEBRTC_HAS_NEON) 156 #if (defined WEBRTC_DETECT_NEON) || (defined WEBRTC_HAS_NEON)
158 int16_t WebRtcSpl_MaxAbsValueW16Neon(const int16_t* vector, size_t length); 157 int16_t WebRtcSpl_MaxAbsValueW16Neon(const int16_t* vector, size_t length);
159 #endif 158 #endif
160 #if defined(MIPS32_LE) 159 #if defined(MIPS32_LE)
161 int16_t WebRtcSpl_MaxAbsValueW16_mips(const int16_t* vector, size_t length); 160 int16_t WebRtcSpl_MaxAbsValueW16_mips(const int16_t* vector, size_t length);
162 #endif 161 #endif
163 162
164 // Returns the largest absolute value in a signed 32-bit vector. 163 // Returns the largest absolute value in a signed 32-bit vector.
165 // 164 //
166 // Input: 165 // Input:
167 // - vector : 32-bit input vector. 166 // - vector : 32-bit input vector.
168 // - length : Number of samples in vector. 167 // - length : Number of samples in vector.
169 // 168 //
170 // Return value : Maximum absolute value in vector; 169 // Return value : Maximum absolute value in vector.
171 // or -1, if (vector == NULL || length == 0).
172 typedef int32_t (*MaxAbsValueW32)(const int32_t* vector, size_t length); 170 typedef int32_t (*MaxAbsValueW32)(const int32_t* vector, size_t length);
173 extern MaxAbsValueW32 WebRtcSpl_MaxAbsValueW32; 171 extern MaxAbsValueW32 WebRtcSpl_MaxAbsValueW32;
174 int32_t WebRtcSpl_MaxAbsValueW32C(const int32_t* vector, size_t length); 172 int32_t WebRtcSpl_MaxAbsValueW32C(const int32_t* vector, size_t length);
175 #if (defined WEBRTC_DETECT_NEON) || (defined WEBRTC_HAS_NEON) 173 #if (defined WEBRTC_DETECT_NEON) || (defined WEBRTC_HAS_NEON)
176 int32_t WebRtcSpl_MaxAbsValueW32Neon(const int32_t* vector, size_t length); 174 int32_t WebRtcSpl_MaxAbsValueW32Neon(const int32_t* vector, size_t length);
177 #endif 175 #endif
178 #if defined(MIPS_DSP_R1_LE) 176 #if defined(MIPS_DSP_R1_LE)
179 int32_t WebRtcSpl_MaxAbsValueW32_mips(const int32_t* vector, size_t length); 177 int32_t WebRtcSpl_MaxAbsValueW32_mips(const int32_t* vector, size_t length);
180 #endif 178 #endif
181 179
182 // Returns the maximum value of a 16-bit vector. 180 // Returns the maximum value of a 16-bit vector.
183 // 181 //
184 // Input: 182 // Input:
185 // - vector : 16-bit input vector. 183 // - vector : 16-bit input vector.
186 // - length : Number of samples in vector. 184 // - length : Number of samples in vector.
187 // 185 //
188 // Return value : Maximum sample value in |vector|. 186 // Return value : Maximum sample value in |vector|.
189 // If (vector == NULL || length == 0) WEBRTC_SPL_WORD16_MIN
190 // is returned. Note that WEBRTC_SPL_WORD16_MIN is a feasible
191 // value and we can't catch errors purely based on it.
192 typedef int16_t (*MaxValueW16)(const int16_t* vector, size_t length); 187 typedef int16_t (*MaxValueW16)(const int16_t* vector, size_t length);
193 extern MaxValueW16 WebRtcSpl_MaxValueW16; 188 extern MaxValueW16 WebRtcSpl_MaxValueW16;
194 int16_t WebRtcSpl_MaxValueW16C(const int16_t* vector, size_t length); 189 int16_t WebRtcSpl_MaxValueW16C(const int16_t* vector, size_t length);
195 #if (defined WEBRTC_DETECT_NEON) || (defined WEBRTC_HAS_NEON) 190 #if (defined WEBRTC_DETECT_NEON) || (defined WEBRTC_HAS_NEON)
196 int16_t WebRtcSpl_MaxValueW16Neon(const int16_t* vector, size_t length); 191 int16_t WebRtcSpl_MaxValueW16Neon(const int16_t* vector, size_t length);
197 #endif 192 #endif
198 #if defined(MIPS32_LE) 193 #if defined(MIPS32_LE)
199 int16_t WebRtcSpl_MaxValueW16_mips(const int16_t* vector, size_t length); 194 int16_t WebRtcSpl_MaxValueW16_mips(const int16_t* vector, size_t length);
200 #endif 195 #endif
201 196
202 // Returns the maximum value of a 32-bit vector. 197 // Returns the maximum value of a 32-bit vector.
203 // 198 //
204 // Input: 199 // Input:
205 // - vector : 32-bit input vector. 200 // - vector : 32-bit input vector.
206 // - length : Number of samples in vector. 201 // - length : Number of samples in vector.
207 // 202 //
208 // Return value : Maximum sample value in |vector|. 203 // Return value : Maximum sample value in |vector|.
209 // If (vector == NULL || length == 0) WEBRTC_SPL_WORD32_MIN
210 // is returned. Note that WEBRTC_SPL_WORD32_MIN is a feasible
211 // value and we can't catch errors purely based on it.
212 typedef int32_t (*MaxValueW32)(const int32_t* vector, size_t length); 204 typedef int32_t (*MaxValueW32)(const int32_t* vector, size_t length);
213 extern MaxValueW32 WebRtcSpl_MaxValueW32; 205 extern MaxValueW32 WebRtcSpl_MaxValueW32;
214 int32_t WebRtcSpl_MaxValueW32C(const int32_t* vector, size_t length); 206 int32_t WebRtcSpl_MaxValueW32C(const int32_t* vector, size_t length);
215 #if (defined WEBRTC_DETECT_NEON) || (defined WEBRTC_HAS_NEON) 207 #if (defined WEBRTC_DETECT_NEON) || (defined WEBRTC_HAS_NEON)
216 int32_t WebRtcSpl_MaxValueW32Neon(const int32_t* vector, size_t length); 208 int32_t WebRtcSpl_MaxValueW32Neon(const int32_t* vector, size_t length);
217 #endif 209 #endif
218 #if defined(MIPS32_LE) 210 #if defined(MIPS32_LE)
219 int32_t WebRtcSpl_MaxValueW32_mips(const int32_t* vector, size_t length); 211 int32_t WebRtcSpl_MaxValueW32_mips(const int32_t* vector, size_t length);
220 #endif 212 #endif
221 213
222 // Returns the minimum value of a 16-bit vector. 214 // Returns the minimum value of a 16-bit vector.
223 // 215 //
224 // Input: 216 // Input:
225 // - vector : 16-bit input vector. 217 // - vector : 16-bit input vector.
226 // - length : Number of samples in vector. 218 // - length : Number of samples in vector.
227 // 219 //
228 // Return value : Minimum sample value in |vector|. 220 // Return value : Minimum sample value in |vector|.
229 // If (vector == NULL || length == 0) WEBRTC_SPL_WORD16_MAX
230 // is returned. Note that WEBRTC_SPL_WORD16_MAX is a feasible
231 // value and we can't catch errors purely based on it.
232 typedef int16_t (*MinValueW16)(const int16_t* vector, size_t length); 221 typedef int16_t (*MinValueW16)(const int16_t* vector, size_t length);
233 extern MinValueW16 WebRtcSpl_MinValueW16; 222 extern MinValueW16 WebRtcSpl_MinValueW16;
234 int16_t WebRtcSpl_MinValueW16C(const int16_t* vector, size_t length); 223 int16_t WebRtcSpl_MinValueW16C(const int16_t* vector, size_t length);
235 #if (defined WEBRTC_DETECT_NEON) || (defined WEBRTC_HAS_NEON) 224 #if (defined WEBRTC_DETECT_NEON) || (defined WEBRTC_HAS_NEON)
236 int16_t WebRtcSpl_MinValueW16Neon(const int16_t* vector, size_t length); 225 int16_t WebRtcSpl_MinValueW16Neon(const int16_t* vector, size_t length);
237 #endif 226 #endif
238 #if defined(MIPS32_LE) 227 #if defined(MIPS32_LE)
239 int16_t WebRtcSpl_MinValueW16_mips(const int16_t* vector, size_t length); 228 int16_t WebRtcSpl_MinValueW16_mips(const int16_t* vector, size_t length);
240 #endif 229 #endif
241 230
242 // Returns the minimum value of a 32-bit vector. 231 // Returns the minimum value of a 32-bit vector.
243 // 232 //
244 // Input: 233 // Input:
245 // - vector : 32-bit input vector. 234 // - vector : 32-bit input vector.
246 // - length : Number of samples in vector. 235 // - length : Number of samples in vector.
247 // 236 //
248 // Return value : Minimum sample value in |vector|. 237 // Return value : Minimum sample value in |vector|.
249 // If (vector == NULL || length == 0) WEBRTC_SPL_WORD32_MAX
250 // is returned. Note that WEBRTC_SPL_WORD32_MAX is a feasible
251 // value and we can't catch errors purely based on it.
252 typedef int32_t (*MinValueW32)(const int32_t* vector, size_t length); 238 typedef int32_t (*MinValueW32)(const int32_t* vector, size_t length);
253 extern MinValueW32 WebRtcSpl_MinValueW32; 239 extern MinValueW32 WebRtcSpl_MinValueW32;
254 int32_t WebRtcSpl_MinValueW32C(const int32_t* vector, size_t length); 240 int32_t WebRtcSpl_MinValueW32C(const int32_t* vector, size_t length);
255 #if (defined WEBRTC_DETECT_NEON) || (defined WEBRTC_HAS_NEON) 241 #if (defined WEBRTC_DETECT_NEON) || (defined WEBRTC_HAS_NEON)
256 int32_t WebRtcSpl_MinValueW32Neon(const int32_t* vector, size_t length); 242 int32_t WebRtcSpl_MinValueW32Neon(const int32_t* vector, size_t length);
257 #endif 243 #endif
258 #if defined(MIPS32_LE) 244 #if defined(MIPS32_LE)
259 int32_t WebRtcSpl_MinValueW32_mips(const int32_t* vector, size_t length); 245 int32_t WebRtcSpl_MinValueW32_mips(const int32_t* vector, size_t length);
260 #endif 246 #endif
261 247
262 // Returns the vector index to the largest absolute value of a 16-bit vector. 248 // Returns the vector index to the largest absolute value of a 16-bit vector.
263 // 249 //
264 // Input: 250 // Input:
265 // - vector : 16-bit input vector. 251 // - vector : 16-bit input vector.
266 // - length : Number of samples in vector. 252 // - length : Number of samples in vector.
267 // 253 //
268 // Return value : Index to the maximum absolute value in vector, or -1, 254 // Return value : Index to the maximum absolute value in vector.
269 // if (vector == NULL || length == 0).
270 // If there are multiple equal maxima, return the index of the 255 // If there are multiple equal maxima, return the index of the
271 // first. -32768 will always have precedence over 32767 (despite 256 // first. -32768 will always have precedence over 32767 (despite
272 // -32768 presenting an int16 absolute value of 32767); 257 // -32768 presenting an int16 absolute value of 32767).
273 int WebRtcSpl_MaxAbsIndexW16(const int16_t* vector, size_t length); 258 size_t WebRtcSpl_MaxAbsIndexW16(const int16_t* vector, size_t length);
274 259
275 // Returns the vector index to the maximum sample value of a 16-bit vector. 260 // Returns the vector index to the maximum sample value of a 16-bit vector.
276 // 261 //
277 // Input: 262 // Input:
278 // - vector : 16-bit input vector. 263 // - vector : 16-bit input vector.
279 // - length : Number of samples in vector. 264 // - length : Number of samples in vector.
280 // 265 //
281 // Return value : Index to the maximum value in vector (if multiple 266 // Return value : Index to the maximum value in vector (if multiple
282 // indexes have the maximum, return the first); 267 // indexes have the maximum, return the first).
283 // or -1, if (vector == NULL || length == 0). 268 size_t WebRtcSpl_MaxIndexW16(const int16_t* vector, size_t length);
284 int WebRtcSpl_MaxIndexW16(const int16_t* vector, size_t length);
285 269
286 // Returns the vector index to the maximum sample value of a 32-bit vector. 270 // Returns the vector index to the maximum sample value of a 32-bit vector.
287 // 271 //
288 // Input: 272 // Input:
289 // - vector : 32-bit input vector. 273 // - vector : 32-bit input vector.
290 // - length : Number of samples in vector. 274 // - length : Number of samples in vector.
291 // 275 //
292 // Return value : Index to the maximum value in vector (if multiple 276 // Return value : Index to the maximum value in vector (if multiple
293 // indexes have the maximum, return the first); 277 // indexes have the maximum, return the first).
294 // or -1, if (vector == NULL || length == 0). 278 size_t WebRtcSpl_MaxIndexW32(const int32_t* vector, size_t length);
295 int WebRtcSpl_MaxIndexW32(const int32_t* vector, size_t length);
296 279
297 // Returns the vector index to the minimum sample value of a 16-bit vector. 280 // Returns the vector index to the minimum sample value of a 16-bit vector.
298 // 281 //
299 // Input: 282 // Input:
300 // - vector : 16-bit input vector. 283 // - vector : 16-bit input vector.
301 // - length : Number of samples in vector. 284 // - length : Number of samples in vector.
302 // 285 //
303 // Return value : Index to the mimimum value in vector (if multiple 286 // Return value : Index to the mimimum value in vector (if multiple
304 // indexes have the minimum, return the first); 287 // indexes have the minimum, return the first).
305 // or -1, if (vector == NULL || length == 0). 288 size_t WebRtcSpl_MinIndexW16(const int16_t* vector, size_t length);
306 int WebRtcSpl_MinIndexW16(const int16_t* vector, size_t length);
307 289
308 // Returns the vector index to the minimum sample value of a 32-bit vector. 290 // Returns the vector index to the minimum sample value of a 32-bit vector.
309 // 291 //
310 // Input: 292 // Input:
311 // - vector : 32-bit input vector. 293 // - vector : 32-bit input vector.
312 // - length : Number of samples in vector. 294 // - length : Number of samples in vector.
313 // 295 //
314 // Return value : Index to the mimimum value in vector (if multiple 296 // Return value : Index to the mimimum value in vector (if multiple
315 // indexes have the minimum, return the first); 297 // indexes have the minimum, return the first).
316 // or -1, if (vector == NULL || length == 0). 298 size_t WebRtcSpl_MinIndexW32(const int32_t* vector, size_t length);
317 int WebRtcSpl_MinIndexW32(const int32_t* vector, size_t length);
318 299
319 // End: Minimum and maximum operations. 300 // End: Minimum and maximum operations.
320 301
321 302
322 // Vector scaling operations. Implementation in vector_scaling_operations.c. 303 // Vector scaling operations. Implementation in vector_scaling_operations.c.
323 // Description at bottom of file. 304 // Description at bottom of file.
324 void WebRtcSpl_VectorBitShiftW16(int16_t* out_vector, 305 void WebRtcSpl_VectorBitShiftW16(int16_t* out_vector,
325 size_t vector_length, 306 size_t vector_length,
326 const int16_t* in_vector, 307 const int16_t* in_vector,
327 int16_t right_shifts); 308 int16_t right_shifts);
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 // calculated 417 // calculated
437 // 418 //
438 // Output: 419 // Output:
439 // - result : auto-correlation values (values should be seen 420 // - result : auto-correlation values (values should be seen
440 // relative to each other since the absolute values 421 // relative to each other since the absolute values
441 // might have been down shifted to avoid overflow) 422 // might have been down shifted to avoid overflow)
442 // 423 //
443 // - scale : The number of left shifts required to obtain the 424 // - scale : The number of left shifts required to obtain the
444 // auto-correlation in Q0 425 // auto-correlation in Q0
445 // 426 //
446 // Return value : 427 // Return value : Number of samples in |result|, i.e. (order+1)
447 // - -1, if |order| > |in_vector_length|; 428 size_t WebRtcSpl_AutoCorrelation(const int16_t* in_vector,
448 // - Number of samples in |result|, i.e. (order+1), otherwise. 429 size_t in_vector_length,
449 int WebRtcSpl_AutoCorrelation(const int16_t* in_vector, 430 size_t order,
450 size_t in_vector_length, 431 int32_t* result,
451 size_t order, 432 int* scale);
452 int32_t* result,
453 int* scale);
454 433
455 // A 32-bit fix-point implementation of the Levinson-Durbin algorithm that 434 // A 32-bit fix-point implementation of the Levinson-Durbin algorithm that
456 // does NOT use the 64 bit class 435 // does NOT use the 64 bit class
457 // 436 //
458 // Input: 437 // Input:
459 // - auto_corr : Vector with autocorrelation values of length >= |order|+1 438 // - auto_corr : Vector with autocorrelation values of length >= |order|+1
460 // - order : The LPC filter order (support up to order 20) 439 // - order : The LPC filter order (support up to order 20)
461 // 440 //
462 // Output: 441 // Output:
463 // - lpc_coef : lpc_coef[0..order] LPC coefficients in Q12 442 // - lpc_coef : lpc_coef[0..order] LPC coefficients in Q12
(...skipping 1193 matching lines...) Expand 10 before | Expand all | Expand 10 after
1657 // This function multiply a 16-bit word by a 16-bit word, and accumulate this 1636 // This function multiply a 16-bit word by a 16-bit word, and accumulate this
1658 // value to a 32-bit integer. 1637 // value to a 32-bit integer.
1659 // 1638 //
1660 // Input: 1639 // Input:
1661 // - a : The value of the first 16-bit word. 1640 // - a : The value of the first 16-bit word.
1662 // - b : The value of the second 16-bit word. 1641 // - b : The value of the second 16-bit word.
1663 // - c : The value of an 32-bit integer. 1642 // - c : The value of an 32-bit integer.
1664 // 1643 //
1665 // Return Value: The value of a * b + c. 1644 // Return Value: The value of a * b + c.
1666 // 1645 //
OLDNEW
« no previous file with comments | « webrtc/common_audio/signal_processing/auto_correlation.c ('k') | webrtc/common_audio/signal_processing/min_max_operations.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698