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

Side by Side Diff: webrtc/modules/audio_coding/codecs/ilbc/get_cd_vec.c

Issue 1230693002: Update audio code to use size_t more correctly, (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Review comments 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) 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
11 /****************************************************************** 11 /******************************************************************
12 12
13 iLBC Speech Coder ANSI-C Source Code 13 iLBC Speech Coder ANSI-C Source Code
14 14
15 WebRtcIlbcfix_GetCbVec.c 15 WebRtcIlbcfix_GetCbVec.c
16 16
17 ******************************************************************/ 17 ******************************************************************/
18 18
19 #include "defines.h" 19 #include "defines.h"
20 #include "constants.h" 20 #include "constants.h"
21 #include "create_augmented_vec.h" 21 #include "create_augmented_vec.h"
22 22
23 /*----------------------------------------------------------------* 23 /*----------------------------------------------------------------*
24 * Construct codebook vector for given index. 24 * Construct codebook vector for given index.
25 *---------------------------------------------------------------*/ 25 *---------------------------------------------------------------*/
26 26
27 void WebRtcIlbcfix_GetCbVec( 27 void WebRtcIlbcfix_GetCbVec(
28 int16_t *cbvec, /* (o) Constructed codebook vector */ 28 int16_t *cbvec, /* (o) Constructed codebook vector */
29 int16_t *mem, /* (i) Codebook buffer */ 29 int16_t *mem, /* (i) Codebook buffer */
30 int16_t index, /* (i) Codebook index */ 30 size_t index, /* (i) Codebook index */
31 int16_t lMem, /* (i) Length of codebook buffer */ 31 size_t lMem, /* (i) Length of codebook buffer */
32 int16_t cbveclen /* (i) Codebook vector length */ 32 size_t cbveclen /* (i) Codebook vector length */
33 ){ 33 ){
34 int16_t k, base_size; 34 size_t k, base_size;
35 int16_t lag; 35 size_t lag;
36 /* Stack based */ 36 /* Stack based */
37 int16_t tempbuff2[SUBL+5]; 37 int16_t tempbuff2[SUBL+5];
38 38
39 /* Determine size of codebook sections */ 39 /* Determine size of codebook sections */
40 40
41 base_size=lMem-cbveclen+1; 41 base_size=lMem-cbveclen+1;
42 42
43 if (cbveclen==SUBL) { 43 if (cbveclen==SUBL) {
44 base_size += cbveclen / 2; 44 base_size += cbveclen / 2;
45 } 45 }
46 46
47 /* No filter -> First codebook section */ 47 /* No filter -> First codebook section */
48 48
49 if (index<lMem-cbveclen+1) { 49 if (index<lMem-cbveclen+1) {
50 50
51 /* first non-interpolated vectors */ 51 /* first non-interpolated vectors */
52 52
53 k=index+cbveclen; 53 k=index+cbveclen;
54 /* get vector */ 54 /* get vector */
55 WEBRTC_SPL_MEMCPY_W16(cbvec, mem+lMem-k, cbveclen); 55 WEBRTC_SPL_MEMCPY_W16(cbvec, mem+lMem-k, cbveclen);
56 56
57 } else if (index < base_size) { 57 } else if (index < base_size) {
58 58
59 /* Calculate lag */ 59 /* Calculate lag */
60 60
61 k = (int16_t)(2 * (index - (lMem - cbveclen + 1))) + cbveclen; 61 k = (2 * (index - (lMem - cbveclen + 1))) + cbveclen;
62 62
63 lag = k / 2; 63 lag = k / 2;
64 64
65 WebRtcIlbcfix_CreateAugmentedVec(lag, mem+lMem, cbvec); 65 WebRtcIlbcfix_CreateAugmentedVec(lag, mem+lMem, cbvec);
66 66
67 } 67 }
68 68
69 /* Higher codebbok section based on filtering */ 69 /* Higher codebbok section based on filtering */
70 70
71 else { 71 else {
72 72
73 int16_t memIndTest; 73 size_t memIndTest;
74 74
75 /* first non-interpolated vectors */ 75 /* first non-interpolated vectors */
76 76
77 if (index-base_size<lMem-cbveclen+1) { 77 if (index-base_size<lMem-cbveclen+1) {
78 78
79 /* Set up filter memory, stuff zeros outside memory buffer */ 79 /* Set up filter memory, stuff zeros outside memory buffer */
80 80
81 memIndTest = lMem-(index-base_size+cbveclen); 81 memIndTest = lMem-(index-base_size+cbveclen);
82 82
83 WebRtcSpl_MemSetW16(mem-CB_HALFFILTERLEN, 0, CB_HALFFILTERLEN); 83 WebRtcSpl_MemSetW16(mem-CB_HALFFILTERLEN, 0, CB_HALFFILTERLEN);
84 WebRtcSpl_MemSetW16(mem+lMem, 0, CB_HALFFILTERLEN); 84 WebRtcSpl_MemSetW16(mem+lMem, 0, CB_HALFFILTERLEN);
85 85
86 /* do filtering to get the codebook vector */ 86 /* do filtering to get the codebook vector */
87 87
88 WebRtcSpl_FilterMAFastQ12( 88 WebRtcSpl_FilterMAFastQ12(
89 &mem[memIndTest+4], cbvec, (int16_t*)WebRtcIlbcfix_kCbFiltersRev, 89 &mem[memIndTest+4], cbvec, (int16_t*)WebRtcIlbcfix_kCbFiltersRev,
90 CB_FILTERLEN, cbveclen); 90 CB_FILTERLEN, cbveclen);
91 } 91 }
92 92
93 /* interpolated vectors */ 93 /* interpolated vectors */
94 94
95 else { 95 else {
96 /* Stuff zeros outside memory buffer */ 96 /* Stuff zeros outside memory buffer */
97 memIndTest = lMem-cbveclen-CB_FILTERLEN; 97 memIndTest = lMem-cbveclen-CB_FILTERLEN;
98 WebRtcSpl_MemSetW16(mem+lMem, 0, CB_HALFFILTERLEN); 98 WebRtcSpl_MemSetW16(mem+lMem, 0, CB_HALFFILTERLEN);
99 99
100 /* do filtering */ 100 /* do filtering */
101 WebRtcSpl_FilterMAFastQ12( 101 WebRtcSpl_FilterMAFastQ12(
102 &mem[memIndTest+7], tempbuff2, (int16_t*)WebRtcIlbcfix_kCbFiltersRev, 102 &mem[memIndTest+7], tempbuff2, (int16_t*)WebRtcIlbcfix_kCbFiltersRev,
103 CB_FILTERLEN, (int16_t)(cbveclen+5)); 103 CB_FILTERLEN, cbveclen+5);
104 104
105 /* Calculate lag index */ 105 /* Calculate lag index */
106 lag = (cbveclen<<1)-20+index-base_size-lMem-1; 106 lag = (cbveclen<<1)-20+index-base_size-lMem-1;
107 107
108 WebRtcIlbcfix_CreateAugmentedVec(lag, tempbuff2+SUBL+5, cbvec); 108 WebRtcIlbcfix_CreateAugmentedVec(lag, tempbuff2+SUBL+5, cbvec);
109 } 109 }
110 } 110 }
111 } 111 }
OLDNEW
« no previous file with comments | « webrtc/modules/audio_coding/codecs/ilbc/get_cd_vec.h ('k') | webrtc/modules/audio_coding/codecs/ilbc/get_sync_seq.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698