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

Side by Side Diff: webrtc/modules/audio_coding/codecs/ilbc/encode.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, 4 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 30 matching lines...) Expand all
41 /*----------------------------------------------------------------* 41 /*----------------------------------------------------------------*
42 * main encoder function 42 * main encoder function
43 *---------------------------------------------------------------*/ 43 *---------------------------------------------------------------*/
44 44
45 void WebRtcIlbcfix_EncodeImpl( 45 void WebRtcIlbcfix_EncodeImpl(
46 uint16_t *bytes, /* (o) encoded data bits iLBC */ 46 uint16_t *bytes, /* (o) encoded data bits iLBC */
47 const int16_t *block, /* (i) speech vector to encode */ 47 const int16_t *block, /* (i) speech vector to encode */
48 IlbcEncoder *iLBCenc_inst /* (i/o) the general encoder 48 IlbcEncoder *iLBCenc_inst /* (i/o) the general encoder
49 state */ 49 state */
50 ){ 50 ){
51 int n, meml_gotten, Nfor; 51 size_t n, meml_gotten, Nfor;
52 int16_t diff, start_pos; 52 size_t diff, start_pos;
53 int index; 53 size_t index;
54 int subcount, subframe; 54 size_t subcount, subframe;
55 int16_t start_count, end_count; 55 size_t start_count, end_count;
56 int16_t *residual; 56 int16_t *residual;
57 int32_t en1, en2; 57 int32_t en1, en2;
58 int16_t scale, max; 58 int16_t scale, max;
59 int16_t *syntdenum; 59 int16_t *syntdenum;
60 int16_t *decresidual; 60 int16_t *decresidual;
61 int16_t *reverseResidual; 61 int16_t *reverseResidual;
62 int16_t *reverseDecresidual; 62 int16_t *reverseDecresidual;
63 /* Stack based */ 63 /* Stack based */
64 int16_t weightdenum[(LPC_FILTERORDER + 1)*NSUB_MAX]; 64 int16_t weightdenum[(LPC_FILTERORDER + 1)*NSUB_MAX];
65 int16_t dataVec[BLOCKL_MAX + LPC_FILTERORDER]; 65 int16_t dataVec[BLOCKL_MAX + LPC_FILTERORDER];
(...skipping 13 matching lines...) Expand all
79 /* Reuse som buffers to save stack memory */ 79 /* Reuse som buffers to save stack memory */
80 residual = &iLBCenc_inst->lpc_buffer[LPC_LOOKBACK+BLOCKL_MAX-iLBCenc_inst->blo ckl]; 80 residual = &iLBCenc_inst->lpc_buffer[LPC_LOOKBACK+BLOCKL_MAX-iLBCenc_inst->blo ckl];
81 syntdenum = mem; /* syntdenum[(LPC_FILTERORDER + 1)*NSUB_MAX] and mem are used non overlapping in the code */ 81 syntdenum = mem; /* syntdenum[(LPC_FILTERORDER + 1)*NSUB_MAX] and mem are used non overlapping in the code */
82 decresidual = residual; /* Already encoded residual is overwritten by the decoded version */ 82 decresidual = residual; /* Already encoded residual is overwritten by the decoded version */
83 reverseResidual = data; /* data and reverseResidual are used non overlappi ng in the code */ 83 reverseResidual = data; /* data and reverseResidual are used non overlappi ng in the code */
84 reverseDecresidual = reverseResidual; /* Already encoded residual is overwritt en by the decoded version */ 84 reverseDecresidual = reverseResidual; /* Already encoded residual is overwritt en by the decoded version */
85 85
86 #ifdef SPLIT_10MS 86 #ifdef SPLIT_10MS
87 87
88 WebRtcSpl_MemSetW16 ( (int16_t *) iLBCbits_inst, 0, 88 WebRtcSpl_MemSetW16 ( (int16_t *) iLBCbits_inst, 0,
89 (int16_t) (sizeof(iLBC_bits) / sizeof(int16_t)) ); 89 sizeof(iLBC_bits) / sizeof(int16_t) );
90 90
91 start_pos = iLBCenc_inst->start_pos; 91 start_pos = iLBCenc_inst->start_pos;
92 diff = iLBCenc_inst->diff; 92 diff = iLBCenc_inst->diff;
93 93
94 if (iLBCenc_inst->section != 0){ 94 if (iLBCenc_inst->section != 0){
95 WEBRTC_SPL_MEMCPY_W16 (weightdenum, weightdenumbuf, 95 WEBRTC_SPL_MEMCPY_W16 (weightdenum, weightdenumbuf,
96 SCRATCH_ENCODE_DATAVEC - SCRATCH_ENCODE_WEIGHTDENUM); 96 SCRATCH_ENCODE_DATAVEC - SCRATCH_ENCODE_WEIGHTDENUM);
97 /* Un-Packetize the frame into parameters */ 97 /* Un-Packetize the frame into parameters */
98 last_bit = WebRtcIlbcfix_UnpackBits (iLBCenc_inst->bytes, iLBCbits_inst, iLB Cenc_inst->mode); 98 last_bit = WebRtcIlbcfix_UnpackBits (iLBCenc_inst->bytes, iLBCbits_inst, iLB Cenc_inst->mode);
99 if (last_bit) 99 if (last_bit)
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
310 if (iLBCenc_inst->mode == 20) 310 if (iLBCenc_inst->mode == 20)
311 { 311 {
312 start_count = 0; 312 start_count = 0;
313 end_count = Nfor; 313 end_count = Nfor;
314 } 314 }
315 if (iLBCenc_inst->mode == 30) 315 if (iLBCenc_inst->mode == 30)
316 { 316 {
317 if (iLBCenc_inst->section == 1) 317 if (iLBCenc_inst->section == 1)
318 { 318 {
319 start_count = 0; 319 start_count = 0;
320 end_count = WEBRTC_SPL_MIN (Nfor, 2); 320 end_count = WEBRTC_SPL_MIN (Nfor, (size_t)2);
321 } 321 }
322 if (iLBCenc_inst->section == 2) 322 if (iLBCenc_inst->section == 2)
323 { 323 {
324 start_count = WEBRTC_SPL_MIN (Nfor, 2); 324 start_count = WEBRTC_SPL_MIN (Nfor, (size_t)2);
325 end_count = Nfor; 325 end_count = Nfor;
326 } 326 }
327 } 327 }
328 #else 328 #else
329 start_count = 0; 329 start_count = 0;
330 end_count = (int16_t)Nfor; 330 end_count = Nfor;
331 #endif 331 #endif
332 332
333 /* loop over subframes to encode */ 333 /* loop over subframes to encode */
334 334
335 for (subframe = start_count; subframe < end_count; subframe++){ 335 for (subframe = start_count; subframe < end_count; subframe++){
336 336
337 /* encode subframe */ 337 /* encode subframe */
338 338
339 WebRtcIlbcfix_CbSearch(iLBCenc_inst, iLBCbits_inst->cb_index+subcount*CB_N STAGES, 339 WebRtcIlbcfix_CbSearch(iLBCenc_inst, iLBCbits_inst->cb_index+subcount*CB_N STAGES,
340 iLBCbits_inst->gain_index+subcount*CB_NSTAGES, 340 iLBCbits_inst->gain_index+subcount*CB_NSTAGES,
341 &residual[(iLBCbits_inst->startIdx+1+subframe)*SUBL ], 341 &residual[(iLBCbits_inst->startIdx+1+subframe)*SUBL ],
342 mem, MEM_LF_TBL, SUBL, 342 mem, MEM_LF_TBL, SUBL,
343 &weightdenum[(iLBCbits_inst->startIdx+1+subframe)*( LPC_FILTERORDER+1)], 343 &weightdenum[(iLBCbits_inst->startIdx+1+subframe)*( LPC_FILTERORDER+1)],
344 (int16_t)subcount); 344 subcount);
345 345
346 /* construct decoded vector */ 346 /* construct decoded vector */
347 347
348 WebRtcIlbcfix_CbConstruct(&decresidual[(iLBCbits_inst->startIdx+1+subframe )*SUBL], 348 WebRtcIlbcfix_CbConstruct(&decresidual[(iLBCbits_inst->startIdx+1+subframe )*SUBL],
349 iLBCbits_inst->cb_index+subcount*CB_NSTAGES, 349 iLBCbits_inst->cb_index+subcount*CB_NSTAGES,
350 iLBCbits_inst->gain_index+subcount*CB_NSTAGES, 350 iLBCbits_inst->gain_index+subcount*CB_NSTAGES,
351 mem, MEM_LF_TBL, 351 mem, MEM_LF_TBL,
352 SUBL 352 SUBL
353 ); 353 );
354 354
(...skipping 24 matching lines...) Expand all
379 379
380 /* backward prediction of subframes */ 380 /* backward prediction of subframes */
381 381
382 if (iLBCbits_inst->startIdx > 1) { 382 if (iLBCbits_inst->startIdx > 1) {
383 383
384 /* create reverse order vectors 384 /* create reverse order vectors
385 (The decresidual does not need to be copied since it is 385 (The decresidual does not need to be copied since it is
386 contained in the same vector as the residual) 386 contained in the same vector as the residual)
387 */ 387 */
388 388
389 int Nback = iLBCbits_inst->startIdx - 1; 389 size_t Nback = iLBCbits_inst->startIdx - 1;
390 WebRtcSpl_MemCpyReversedOrder(&reverseResidual[Nback*SUBL-1], residual, Nbac k*SUBL); 390 WebRtcSpl_MemCpyReversedOrder(&reverseResidual[Nback*SUBL-1], residual, Nbac k*SUBL);
391 391
392 /* setup memory */ 392 /* setup memory */
393 393
394 meml_gotten = SUBL*(iLBCenc_inst->nsub+1-iLBCbits_inst->startIdx); 394 meml_gotten = SUBL*(iLBCenc_inst->nsub+1-iLBCbits_inst->startIdx);
395 if( meml_gotten > CB_MEML ) { 395 if( meml_gotten > CB_MEML ) {
396 meml_gotten=CB_MEML; 396 meml_gotten=CB_MEML;
397 } 397 }
398 398
399 WebRtcSpl_MemCpyReversedOrder(&mem[CB_MEML-1], &decresidual[Nback*SUBL], mem l_gotten); 399 WebRtcSpl_MemCpyReversedOrder(&mem[CB_MEML-1], &decresidual[Nback*SUBL], mem l_gotten);
(...skipping 27 matching lines...) Expand all
427 end_count = (Nfor >= 2) ? 0 : (2 - NFor); 427 end_count = (Nfor >= 2) ? 0 : (2 - NFor);
428 } 428 }
429 if (iLBCenc_inst->section == 2) 429 if (iLBCenc_inst->section == 2)
430 { 430 {
431 start_count = (Nfor >= 2) ? 0 : (2 - NFor); 431 start_count = (Nfor >= 2) ? 0 : (2 - NFor);
432 end_count = Nback; 432 end_count = Nback;
433 } 433 }
434 } 434 }
435 #else 435 #else
436 start_count = 0; 436 start_count = 0;
437 end_count = (int16_t)Nback; 437 end_count = Nback;
438 #endif 438 #endif
439 439
440 /* loop over subframes to encode */ 440 /* loop over subframes to encode */
441 441
442 for (subframe = start_count; subframe < end_count; subframe++){ 442 for (subframe = start_count; subframe < end_count; subframe++){
443 443
444 /* encode subframe */ 444 /* encode subframe */
445 445
446 WebRtcIlbcfix_CbSearch(iLBCenc_inst, iLBCbits_inst->cb_index+subcount*CB_N STAGES, 446 WebRtcIlbcfix_CbSearch(iLBCenc_inst, iLBCbits_inst->cb_index+subcount*CB_N STAGES,
447 iLBCbits_inst->gain_index+subcount*CB_NSTAGES, &rev erseResidual[subframe*SUBL], 447 iLBCbits_inst->gain_index+subcount*CB_NSTAGES, &rev erseResidual[subframe*SUBL],
448 mem, MEM_LF_TBL, SUBL, 448 mem, MEM_LF_TBL, SUBL,
449 &weightdenum[(iLBCbits_inst->startIdx-2-subframe)*( LPC_FILTERORDER+1)], 449 &weightdenum[(iLBCbits_inst->startIdx-2-subframe)*( LPC_FILTERORDER+1)],
450 (int16_t)subcount); 450 subcount);
451 451
452 /* construct decoded vector */ 452 /* construct decoded vector */
453 453
454 WebRtcIlbcfix_CbConstruct(&reverseDecresidual[subframe*SUBL], 454 WebRtcIlbcfix_CbConstruct(&reverseDecresidual[subframe*SUBL],
455 iLBCbits_inst->cb_index+subcount*CB_NSTAGES, 455 iLBCbits_inst->cb_index+subcount*CB_NSTAGES,
456 iLBCbits_inst->gain_index+subcount*CB_NSTAGES, 456 iLBCbits_inst->gain_index+subcount*CB_NSTAGES,
457 mem, MEM_LF_TBL, SUBL 457 mem, MEM_LF_TBL, SUBL
458 ); 458 );
459 459
460 /* update memory */ 460 /* update memory */
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
509 } 509 }
510 else 510 else
511 { 511 {
512 iLBCenc_inst->section++; 512 iLBCenc_inst->section++;
513 WEBRTC_SPL_MEMCPY_W16 (weightdenumbuf, weightdenum, 513 WEBRTC_SPL_MEMCPY_W16 (weightdenumbuf, weightdenum,
514 SCRATCH_ENCODE_DATAVEC - SCRATCH_ENCODE_WEIGHTDENUM); 514 SCRATCH_ENCODE_DATAVEC - SCRATCH_ENCODE_WEIGHTDENUM);
515 } 515 }
516 #endif 516 #endif
517 517
518 } 518 }
OLDNEW
« no previous file with comments | « webrtc/modules/audio_coding/codecs/ilbc/do_plc.c ('k') | webrtc/modules/audio_coding/codecs/ilbc/energy_inverse.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698