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

Side by Side Diff: webrtc/modules/audio_coding/codecs/g722/g722_decode.c

Issue 1820023004: Remove all uses of the HAVE_CONFIG_H define. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebased Created 4 years, 8 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 * SpanDSP - a series of DSP components for telephony 2 * SpanDSP - a series of DSP components for telephony
3 * 3 *
4 * g722_decode.c - The ITU G.722 codec, decode part. 4 * g722_decode.c - The ITU G.722 codec, decode part.
5 * 5 *
6 * Written by Steve Underwood <steveu@coppice.org> 6 * Written by Steve Underwood <steveu@coppice.org>
7 * 7 *
8 * Copyright (C) 2005 Steve Underwood 8 * Copyright (C) 2005 Steve Underwood
9 * 9 *
10 * Despite my general liking of the GPL, I place my own contributions 10 * Despite my general liking of the GPL, I place my own contributions
11 * to this code in the public domain for the benefit of all mankind - 11 * to this code in the public domain for the benefit of all mankind -
12 * even the slimy ones who might try to proprietize my work and use it 12 * even the slimy ones who might try to proprietize my work and use it
13 * to my detriment. 13 * to my detriment.
14 * 14 *
15 * Based in part on a single channel G.722 codec which is: 15 * Based in part on a single channel G.722 codec which is:
16 * 16 *
17 * Copyright (c) CMU 1993 17 * Copyright (c) CMU 1993
18 * Computer Science, Speech Group 18 * Computer Science, Speech Group
19 * Chengxiang Lu and Alex Hauptmann 19 * Chengxiang Lu and Alex Hauptmann
20 * 20 *
21 * $Id: g722_decode.c,v 1.15 2006/07/07 16:37:49 steveu Exp $ 21 * $Id: g722_decode.c,v 1.15 2006/07/07 16:37:49 steveu Exp $
22 * 22 *
23 * Modifications for WebRtc, 2011/04/28, by tlegrand: 23 * Modifications for WebRtc, 2011/04/28, by tlegrand:
24 * -Removed usage of inttypes.h and tgmath.h 24 * -Removed usage of inttypes.h and tgmath.h
25 * -Changed to use WebRtc types 25 * -Changed to use WebRtc types
26 * -Changed __inline__ to __inline 26 * -Changed __inline__ to __inline
27 * -Added saturation check on output 27 * -Added saturation check on output
28 */ 28 */
29 29
30 /*! \file */ 30 /*! \file */
31 31
32 32
33 #ifdef HAVE_CONFIG_H
34 #include <config.h>
35 #endif
36
37 #include <memory.h> 33 #include <memory.h>
38 #include <stdio.h> 34 #include <stdio.h>
39 #include <stdlib.h> 35 #include <stdlib.h>
40 36
41 #include "g722_enc_dec.h" 37 #include "g722_enc_dec.h"
42 #include "webrtc/typedefs.h" 38 #include "webrtc/typedefs.h"
43 39
44 #if !defined(FALSE) 40 #if !defined(FALSE)
45 #define FALSE 0 41 #define FALSE 0
46 #endif 42 #endif
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 wd3 = (s->band[band].b[i]*32640) >> 15; 114 wd3 = (s->band[band].b[i]*32640) >> 15;
119 s->band[band].bp[i] = saturate(wd2 + wd3); 115 s->band[band].bp[i] = saturate(wd2 + wd3);
120 } 116 }
121 117
122 /* Block 4, DELAYA */ 118 /* Block 4, DELAYA */
123 for (i = 6; i > 0; i--) 119 for (i = 6; i > 0; i--)
124 { 120 {
125 s->band[band].d[i] = s->band[band].d[i - 1]; 121 s->band[band].d[i] = s->band[band].d[i - 1];
126 s->band[band].b[i] = s->band[band].bp[i]; 122 s->band[band].b[i] = s->band[band].bp[i];
127 } 123 }
128 124
129 for (i = 2; i > 0; i--) 125 for (i = 2; i > 0; i--)
130 { 126 {
131 s->band[band].r[i] = s->band[band].r[i - 1]; 127 s->band[band].r[i] = s->band[band].r[i - 1];
132 s->band[band].p[i] = s->band[band].p[i - 1]; 128 s->band[band].p[i] = s->band[band].p[i - 1];
133 s->band[band].a[i] = s->band[band].ap[i]; 129 s->band[band].a[i] = s->band[band].ap[i];
134 } 130 }
135 131
136 /* Block 4, FILTEP */ 132 /* Block 4, FILTEP */
137 wd1 = saturate(s->band[band].r[1] + s->band[band].r[1]); 133 wd1 = saturate(s->band[band].r[1] + s->band[band].r[1]);
138 wd1 = (s->band[band].a[1]*wd1) >> 15; 134 wd1 = (s->band[band].a[1]*wd1) >> 15;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 { 190 {
195 2048, 2093, 2139, 2186, 2233, 2282, 2332, 191 2048, 2093, 2139, 2186, 2233, 2282, 2332,
196 2383, 2435, 2489, 2543, 2599, 2656, 2714, 192 2383, 2435, 2489, 2543, 2599, 2656, 2714,
197 2774, 2834, 2896, 2960, 3025, 3091, 3158, 193 2774, 2834, 2896, 2960, 3025, 3091, 3158,
198 3228, 3298, 3371, 3444, 3520, 3597, 3676, 194 3228, 3298, 3371, 3444, 3520, 3597, 3676,
199 3756, 3838, 3922, 4008 195 3756, 3838, 3922, 4008
200 }; 196 };
201 static const int wh[3] = {0, -214, 798}; 197 static const int wh[3] = {0, -214, 798};
202 static const int rh2[4] = {2, 1, 2, 1}; 198 static const int rh2[4] = {2, 1, 2, 1};
203 static const int qm2[4] = {-7408, -1616, 7408, 1616}; 199 static const int qm2[4] = {-7408, -1616, 7408, 1616};
204 static const int qm4[16] = 200 static const int qm4[16] =
205 { 201 {
206 0, -20456, -12896, -8968, 202 0, -20456, -12896, -8968,
207 -6288, -4240, -2584, -1200, 203 -6288, -4240, -2584, -1200,
208 20456, 12896, 8968, 6288, 204 20456, 12896, 8968, 6288,
209 4240, 2584, 1200, 0 205 4240, 2584, 1200, 0
210 }; 206 };
211 static const int qm5[32] = 207 static const int qm5[32] =
212 { 208 {
213 -280, -280, -23352, -17560, 209 -280, -280, -23352, -17560,
214 -14120, -11664, -9752, -8184, 210 -14120, -11664, -9752, -8184,
215 -6864, -5712, -4696, -3784, 211 -6864, -5712, -4696, -3784,
216 -2960, -2208, -1520, -880, 212 -2960, -2208, -1520, -880,
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 312
317 /* Block 3L, LOGSCL */ 313 /* Block 3L, LOGSCL */
318 wd2 = rl42[wd1]; 314 wd2 = rl42[wd1];
319 wd1 = (s->band[0].nb*127) >> 7; 315 wd1 = (s->band[0].nb*127) >> 7;
320 wd1 += wl[wd2]; 316 wd1 += wl[wd2];
321 if (wd1 < 0) 317 if (wd1 < 0)
322 wd1 = 0; 318 wd1 = 0;
323 else if (wd1 > 18432) 319 else if (wd1 > 18432)
324 wd1 = 18432; 320 wd1 = 18432;
325 s->band[0].nb = wd1; 321 s->band[0].nb = wd1;
326 322
327 /* Block 3L, SCALEL */ 323 /* Block 3L, SCALEL */
328 wd1 = (s->band[0].nb >> 6) & 31; 324 wd1 = (s->band[0].nb >> 6) & 31;
329 wd2 = 8 - (s->band[0].nb >> 11); 325 wd2 = 8 - (s->band[0].nb >> 11);
330 wd3 = (wd2 < 0) ? (ilb[wd1] << -wd2) : (ilb[wd1] >> wd2); 326 wd3 = (wd2 < 0) ? (ilb[wd1] << -wd2) : (ilb[wd1] >> wd2);
331 s->band[0].det = wd3 << 2; 327 s->band[0].det = wd3 << 2;
332 328
333 block4(s, 0, dlowt); 329 block4(s, 0, dlowt);
334 330
335 if (!s->eight_k) 331 if (!s->eight_k)
336 { 332 {
337 /* Block 2H, INVQAH */ 333 /* Block 2H, INVQAH */
338 wd2 = qm2[ihigh]; 334 wd2 = qm2[ihigh];
339 dhigh = (s->band[1].det*wd2) >> 15; 335 dhigh = (s->band[1].det*wd2) >> 15;
340 /* Block 5H, RECONS */ 336 /* Block 5H, RECONS */
341 rhigh = dhigh + s->band[1].s; 337 rhigh = dhigh + s->band[1].s;
342 /* Block 6H, LIMIT */ 338 /* Block 6H, LIMIT */
343 if (rhigh > 16383) 339 if (rhigh > 16383)
344 rhigh = 16383; 340 rhigh = 16383;
345 else if (rhigh < -16384) 341 else if (rhigh < -16384)
346 rhigh = -16384; 342 rhigh = -16384;
347 343
348 /* Block 2H, INVQAH */ 344 /* Block 2H, INVQAH */
349 wd2 = rh2[ihigh]; 345 wd2 = rh2[ihigh];
350 wd1 = (s->band[1].nb*127) >> 7; 346 wd1 = (s->band[1].nb*127) >> 7;
351 wd1 += wh[wd2]; 347 wd1 += wh[wd2];
352 if (wd1 < 0) 348 if (wd1 < 0)
353 wd1 = 0; 349 wd1 = 0;
354 else if (wd1 > 22528) 350 else if (wd1 > 22528)
355 wd1 = 22528; 351 wd1 = 22528;
356 s->band[1].nb = wd1; 352 s->band[1].nb = wd1;
357 353
358 /* Block 3H, SCALEH */ 354 /* Block 3H, SCALEH */
359 wd1 = (s->band[1].nb >> 6) & 31; 355 wd1 = (s->band[1].nb >> 6) & 31;
360 wd2 = 10 - (s->band[1].nb >> 11); 356 wd2 = 10 - (s->band[1].nb >> 11);
361 wd3 = (wd2 < 0) ? (ilb[wd1] << -wd2) : (ilb[wd1] >> wd2); 357 wd3 = (wd2 < 0) ? (ilb[wd1] << -wd2) : (ilb[wd1] >> wd2);
362 s->band[1].det = wd3 << 2; 358 s->band[1].det = wd3 << 2;
363 359
364 block4(s, 1, dhigh); 360 block4(s, 1, dhigh);
365 } 361 }
366 362
367 if (s->itu_test_mode) 363 if (s->itu_test_mode)
(...skipping 27 matching lines...) Expand all
395 /* WebRtc, tlegrand: added saturation */ 391 /* WebRtc, tlegrand: added saturation */
396 amp[outlen++] = saturate(xout1 >> 11); 392 amp[outlen++] = saturate(xout1 >> 11);
397 amp[outlen++] = saturate(xout2 >> 11); 393 amp[outlen++] = saturate(xout2 >> 11);
398 } 394 }
399 } 395 }
400 } 396 }
401 return outlen; 397 return outlen;
402 } 398 }
403 /*- End of function --------------------------------------------------------*/ 399 /*- End of function --------------------------------------------------------*/
404 /*- End of file ------------------------------------------------------------*/ 400 /*- End of file ------------------------------------------------------------*/
OLDNEW
« no previous file with comments | « webrtc/media/engine/webrtcvoiceengine.cc ('k') | webrtc/modules/audio_coding/codecs/g722/g722_encode.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698