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

Side by Side Diff: webrtc/common_audio/signal_processing/resample_fractional.c

Issue 1230503003: Update a ton of audio code to use size_t more correctly and in general reduce (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Resync 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) 2011 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2011 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 23 matching lines...) Expand all
34 {-101, 612, -2283, 8532, 29790, -5138, 1789, -524, 91}, 34 {-101, 612, -2283, 8532, 29790, -5138, 1789, -524, 91},
35 {50, -292, 1016, -3064, 32010, 3933, -1147, 315, -53}, 35 {50, -292, 1016, -3064, 32010, 3933, -1147, 315, -53},
36 {-156, 974, -3863, 18603, 21691, -6246, 2353, -712, 126} 36 {-156, 974, -3863, 18603, 21691, -6246, 2353, -712, 126}
37 }; 37 };
38 38
39 // Resampling ratio: 2/3 39 // Resampling ratio: 2/3
40 // input: int32_t (normalized, not saturated) :: size 3 * K 40 // input: int32_t (normalized, not saturated) :: size 3 * K
41 // output: int32_t (shifted 15 positions to the left, + offset 16384) :: size 2 * K 41 // output: int32_t (shifted 15 positions to the left, + offset 16384) :: size 2 * K
42 // K: number of blocks 42 // K: number of blocks
43 43
44 void WebRtcSpl_Resample48khzTo32khz(const int32_t *In, int32_t *Out, int32_t K) 44 void WebRtcSpl_Resample48khzTo32khz(const int32_t *In, int32_t *Out, size_t K)
45 { 45 {
46 ///////////////////////////////////////////////////////////// 46 /////////////////////////////////////////////////////////////
47 // Filter operation: 47 // Filter operation:
48 // 48 //
49 // Perform resampling (3 input samples -> 2 output samples); 49 // Perform resampling (3 input samples -> 2 output samples);
50 // process in sub blocks of size 3 samples. 50 // process in sub blocks of size 3 samples.
51 int32_t tmp; 51 int32_t tmp;
52 int32_t m; 52 size_t m;
53 53
54 for (m = 0; m < K; m++) 54 for (m = 0; m < K; m++)
55 { 55 {
56 tmp = 1 << 14; 56 tmp = 1 << 14;
57 tmp += kCoefficients48To32[0][0] * In[0]; 57 tmp += kCoefficients48To32[0][0] * In[0];
58 tmp += kCoefficients48To32[0][1] * In[1]; 58 tmp += kCoefficients48To32[0][1] * In[1];
59 tmp += kCoefficients48To32[0][2] * In[2]; 59 tmp += kCoefficients48To32[0][2] * In[2];
60 tmp += kCoefficients48To32[0][3] * In[3]; 60 tmp += kCoefficients48To32[0][3] * In[3];
61 tmp += kCoefficients48To32[0][4] * In[4]; 61 tmp += kCoefficients48To32[0][4] * In[4];
62 tmp += kCoefficients48To32[0][5] * In[5]; 62 tmp += kCoefficients48To32[0][5] * In[5];
(...skipping 16 matching lines...) Expand all
79 In += 3; 79 In += 3;
80 Out += 2; 80 Out += 2;
81 } 81 }
82 } 82 }
83 83
84 // Resampling ratio: 3/4 84 // Resampling ratio: 3/4
85 // input: int32_t (normalized, not saturated) :: size 4 * K 85 // input: int32_t (normalized, not saturated) :: size 4 * K
86 // output: int32_t (shifted 15 positions to the left, + offset 16384) :: size 3 * K 86 // output: int32_t (shifted 15 positions to the left, + offset 16384) :: size 3 * K
87 // K: number of blocks 87 // K: number of blocks
88 88
89 void WebRtcSpl_Resample32khzTo24khz(const int32_t *In, int32_t *Out, int32_t K) 89 void WebRtcSpl_Resample32khzTo24khz(const int32_t *In, int32_t *Out, size_t K)
90 { 90 {
91 ///////////////////////////////////////////////////////////// 91 /////////////////////////////////////////////////////////////
92 // Filter operation: 92 // Filter operation:
93 // 93 //
94 // Perform resampling (4 input samples -> 3 output samples); 94 // Perform resampling (4 input samples -> 3 output samples);
95 // process in sub blocks of size 4 samples. 95 // process in sub blocks of size 4 samples.
96 int32_t m; 96 size_t m;
97 int32_t tmp; 97 int32_t tmp;
98 98
99 for (m = 0; m < K; m++) 99 for (m = 0; m < K; m++)
100 { 100 {
101 tmp = 1 << 14; 101 tmp = 1 << 14;
102 tmp += kCoefficients32To24[0][0] * In[0]; 102 tmp += kCoefficients32To24[0][0] * In[0];
103 tmp += kCoefficients32To24[0][1] * In[1]; 103 tmp += kCoefficients32To24[0][1] * In[1];
104 tmp += kCoefficients32To24[0][2] * In[2]; 104 tmp += kCoefficients32To24[0][2] * In[2];
105 tmp += kCoefficients32To24[0][3] * In[3]; 105 tmp += kCoefficients32To24[0][3] * In[3];
106 tmp += kCoefficients32To24[0][4] * In[4]; 106 tmp += kCoefficients32To24[0][4] * In[4];
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 coef = coef_ptr[8]; 187 coef = coef_ptr[8];
188 *out1 = tmp1 + coef * in1[8]; 188 *out1 = tmp1 + coef * in1[8];
189 *out2 = tmp2 + coef * in2[-8]; 189 *out2 = tmp2 + coef * in2[-8];
190 } 190 }
191 191
192 // Resampling ratio: 8/11 192 // Resampling ratio: 8/11
193 // input: int32_t (normalized, not saturated) :: size 11 * K 193 // input: int32_t (normalized, not saturated) :: size 11 * K
194 // output: int32_t (shifted 15 positions to the left, + offset 16384) :: size 8 * K 194 // output: int32_t (shifted 15 positions to the left, + offset 16384) :: size 8 * K
195 // K: number of blocks 195 // K: number of blocks
196 196
197 void WebRtcSpl_Resample44khzTo32khz(const int32_t *In, int32_t *Out, int32_t K) 197 void WebRtcSpl_Resample44khzTo32khz(const int32_t *In, int32_t *Out, size_t K)
198 { 198 {
199 ///////////////////////////////////////////////////////////// 199 /////////////////////////////////////////////////////////////
200 // Filter operation: 200 // Filter operation:
201 // 201 //
202 // Perform resampling (11 input samples -> 8 output samples); 202 // Perform resampling (11 input samples -> 8 output samples);
203 // process in sub blocks of size 11 samples. 203 // process in sub blocks of size 11 samples.
204 int32_t tmp; 204 int32_t tmp;
205 int32_t m; 205 size_t m;
206 206
207 for (m = 0; m < K; m++) 207 for (m = 0; m < K; m++)
208 { 208 {
209 tmp = 1 << 14; 209 tmp = 1 << 14;
210 210
211 // first output sample 211 // first output sample
212 Out[0] = ((int32_t)In[3] << 15) + tmp; 212 Out[0] = ((int32_t)In[3] << 15) + tmp;
213 213
214 // sum and accumulate filter coefficients and input samples 214 // sum and accumulate filter coefficients and input samples
215 tmp += kCoefficients44To32[3][0] * In[5]; 215 tmp += kCoefficients44To32[3][0] * In[5];
(...skipping 14 matching lines...) Expand all
230 WebRtcSpl_ResampDotProduct(&In[2], &In[15], kCoefficients44To32[1], &Out [2], &Out[6]); 230 WebRtcSpl_ResampDotProduct(&In[2], &In[15], kCoefficients44To32[1], &Out [2], &Out[6]);
231 231
232 // sum and accumulate filter coefficients and input samples 232 // sum and accumulate filter coefficients and input samples
233 WebRtcSpl_ResampDotProduct(&In[3], &In[14], kCoefficients44To32[2], &Out [3], &Out[5]); 233 WebRtcSpl_ResampDotProduct(&In[3], &In[14], kCoefficients44To32[2], &Out [3], &Out[5]);
234 234
235 // update pointers 235 // update pointers
236 In += 11; 236 In += 11;
237 Out += 8; 237 Out += 8;
238 } 238 }
239 } 239 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698