Skip to content

Commit cdb15a1

Browse files
committed
module: audio: circ_buf: return sample count as size_t
Change the return type of cir_buf_samples_without_wrap_s16() and cir_buf_samples_without_wrap_s32() from int to size_t, and update the sample-count variables in all callers (volume, mixer, aria, asrc). The returned value is a non-negative element count derived from pointer arithmetic, so size_t matches the rest of the circular-buffer API. Signed-off-by: Adrian Warecki <adrian.warecki@intel.com>
1 parent cceea1e commit cdb15a1

13 files changed

Lines changed: 224 additions & 199 deletions

‎src/audio/aria/aria_generic.c‎

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,19 +47,20 @@ static void aria_algo_get_data(struct processing_module *mod,
4747
int32_t gain_begin = cd->gains[sof_aria_index_tab[gain_state_add_2]];
4848
/* do linear approximation between points gain_begin and gain_end */
4949
int32_t gain_end = cd->gains[sof_aria_index_tab[gain_state_add_3]];
50-
int32_t m, n, i, ch;
51-
int32_t samples = frames * audio_stream_get_channels(sink);
50+
size_t m, n, i;
51+
int ch;
52+
size_t samples = frames * audio_stream_get_channels(sink);
5253
int32_t *out = audio_stream_get_wptr(sink);
5354
int32_t *in = cd->data_ptr;
5455
int32_t gain;
5556
const int ch_n = cd->chan_cnt;
5657
const int shift = 31 - cd->att;
5758

58-
for (i = 1; i < ARIA_MAX_GAIN_STATES - 1; i++) {
59-
if (cd->gains[sof_aria_index_tab[gain_state_add_2 + i]] < gain_begin)
60-
gain_begin = cd->gains[sof_aria_index_tab[gain_state_add_2 + i]];
61-
if (cd->gains[sof_aria_index_tab[gain_state_add_3 + i]] < gain_end)
62-
gain_end = cd->gains[sof_aria_index_tab[gain_state_add_3 + i]];
59+
for (ch = 1; ch < ARIA_MAX_GAIN_STATES - 1; ch++) {
60+
if (cd->gains[sof_aria_index_tab[gain_state_add_2 + ch]] < gain_begin)
61+
gain_begin = cd->gains[sof_aria_index_tab[gain_state_add_2 + ch]];
62+
if (cd->gains[sof_aria_index_tab[gain_state_add_3 + ch]] < gain_end)
63+
gain_end = cd->gains[sof_aria_index_tab[gain_state_add_3 + ch]];
6364
}
6465
step = (gain_end - gain_begin) / frames;
6566
gain = gain_begin;

‎src/audio/asrc/asrc.c‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,8 @@ static void src_copy_s32(struct processing_module *mod,
4646
int32_t *buf;
4747
const int32_t *src = source->ptr;
4848
int32_t *snk = sink->ptr;
49-
int n_wrap_src;
50-
int n_wrap_snk;
49+
size_t n_wrap_src;
50+
size_t n_wrap_snk;
5151
int n_copy;
5252
unsigned int n;
5353
int ret;
@@ -118,8 +118,8 @@ static void src_copy_s16(struct processing_module *mod,
118118
const int16_t *src = source->ptr;
119119
int16_t *snk = sink->ptr;
120120
int16_t *buf;
121-
int n_wrap_src;
122-
int n_wrap_snk;
121+
size_t n_wrap_src;
122+
size_t n_wrap_snk;
123123
int n_copy;
124124
int s_copy;
125125
int ret;

‎src/audio/mixer/mixer_generic.c‎

Lines changed: 23 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,9 @@ static void mix_n_s16(struct comp_dev *dev, struct audio_stream *sink,
1919
int16_t *src[PLATFORM_MAX_CHANNELS];
2020
int16_t *dest;
2121
int32_t val;
22-
int nmax;
23-
int i, j, n, ns;
24-
int processed = 0;
25-
int nch = audio_stream_get_channels(sink);
26-
int samples = frames * nch;
22+
size_t nmax, ns, n, i, processed = 0;
23+
uint32_t j;
24+
int samples = frames * audio_stream_get_channels(sink);
2725

2826
dest = audio_stream_get_wptr(sink);
2927
for (j = 0; j < num_sources; j++)
@@ -33,8 +31,8 @@ static void mix_n_s16(struct comp_dev *dev, struct audio_stream *sink,
3331
nmax = samples - processed;
3432
n = audio_stream_samples_without_wrap_s16(sink, dest);
3533
n = MIN(n, nmax);
36-
for (i = 0; i < num_sources; i++) {
37-
ns = audio_stream_samples_without_wrap_s16(sources[i], src[i]);
34+
for (j = 0; j < num_sources; j++) {
35+
ns = audio_stream_samples_without_wrap_s16(sources[j], src[j]);
3836
n = MIN(n, ns);
3937
}
4038
for (i = 0; i < n; i++) {
@@ -50,8 +48,8 @@ static void mix_n_s16(struct comp_dev *dev, struct audio_stream *sink,
5048
}
5149
processed += n;
5250
dest = audio_stream_wrap(sink, dest);
53-
for (i = 0; i < num_sources; i++)
54-
src[i] = audio_stream_wrap(sources[i], src[i]);
51+
for (j = 0; j < num_sources; j++)
52+
src[j] = audio_stream_wrap(sources[j], src[j]);
5553
}
5654
}
5755
#endif /* CONFIG_FORMAT_S16LE */
@@ -62,15 +60,13 @@ static void mix_n_s24(struct comp_dev *dev, struct audio_stream *sink,
6260
const struct audio_stream **sources, uint32_t num_sources,
6361
uint32_t frames)
6462
{
65-
int32_t *src[PLATFORM_MAX_CHANNELS];
63+
const int32_t *src[PLATFORM_MAX_CHANNELS];
64+
size_t nmax, ns, n, i, processed = 0;
6665
int32_t *dest;
66+
uint32_t j;
6767
int32_t val;
6868
int32_t x;
69-
int nmax;
70-
int i, j, n, ns;
71-
int processed = 0;
72-
int nch = audio_stream_get_channels(sink);
73-
int samples = frames * nch;
69+
int samples = frames * audio_stream_get_channels(sink);
7470

7571
dest = audio_stream_get_wptr(sink);
7672
for (j = 0; j < num_sources; j++)
@@ -80,8 +76,8 @@ static void mix_n_s24(struct comp_dev *dev, struct audio_stream *sink,
8076
nmax = samples - processed;
8177
n = audio_stream_samples_without_wrap_s24(sink, dest);
8278
n = MIN(n, nmax);
83-
for (i = 0; i < num_sources; i++) {
84-
ns = audio_stream_samples_without_wrap_s24(sources[i], src[i]);
79+
for (j = 0; j < num_sources; j++) {
80+
ns = audio_stream_samples_without_wrap_s24(sources[j], src[j]);
8581
n = MIN(n, ns);
8682
}
8783
for (i = 0; i < n; i++) {
@@ -98,8 +94,8 @@ static void mix_n_s24(struct comp_dev *dev, struct audio_stream *sink,
9894
}
9995
processed += n;
10096
dest = audio_stream_wrap(sink, dest);
101-
for (i = 0; i < num_sources; i++)
102-
src[i] = audio_stream_wrap(sources[i], src[i]);
97+
for (j = 0; j < num_sources; j++)
98+
src[j] = audio_stream_wrap(sources[j], src[j]);
10399
}
104100
}
105101
#endif /* CONFIG_FORMAT_S24LE */
@@ -110,14 +106,12 @@ static void mix_n_s32(struct comp_dev *dev, struct audio_stream *sink,
110106
const struct audio_stream **sources, uint32_t num_sources,
111107
uint32_t frames)
112108
{
113-
int32_t *src[PLATFORM_MAX_CHANNELS];
109+
const int32_t *src[PLATFORM_MAX_CHANNELS];
110+
size_t nmax, ns, i, n, processed = 0;
114111
int32_t *dest;
115112
int64_t val;
116-
int nmax;
117-
int i, j, n, ns;
118-
int processed = 0;
119-
int nch = audio_stream_get_channels(sink);
120-
int samples = frames * nch;
113+
uint32_t j;
114+
size_t samples = frames * audio_stream_get_channels(sink);
121115

122116
dest = audio_stream_get_wptr(sink);
123117
for (j = 0; j < num_sources; j++)
@@ -127,8 +121,8 @@ static void mix_n_s32(struct comp_dev *dev, struct audio_stream *sink,
127121
nmax = samples - processed;
128122
n = audio_stream_samples_without_wrap_s32(sink, dest);
129123
n = MIN(n, nmax);
130-
for (i = 0; i < num_sources; i++) {
131-
ns = audio_stream_samples_without_wrap_s32(sources[i], src[i]);
124+
for (j = 0; j < num_sources; j++) {
125+
ns = audio_stream_samples_without_wrap_s32(sources[j], src[j]);
132126
n = MIN(n, ns);
133127
}
134128
for (i = 0; i < n; i++) {
@@ -144,8 +138,8 @@ static void mix_n_s32(struct comp_dev *dev, struct audio_stream *sink,
144138
}
145139
processed += n;
146140
dest = audio_stream_wrap(sink, dest);
147-
for (i = 0; i < num_sources; i++)
148-
src[i] = audio_stream_wrap(sources[i], src[i]);
141+
for (j = 0; j < num_sources; j++)
142+
src[j] = audio_stream_wrap(sources[j], src[j]);
149143
}
150144
}
151145
#endif /* CONFIG_FORMAT_S32LE */

‎src/audio/mixer/mixer_hifi3.c‎

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,9 @@ static void mix_n_s16(struct comp_dev *dev, struct audio_stream *sink,
2626
ae_int32x2 val2;
2727
ae_int32x2 sample_1;
2828
ae_int32x2 sample_2;
29-
unsigned int n, m, nmax, i, j, left_samples;
30-
unsigned int samples = frames * audio_stream_get_channels(sink);
29+
size_t n, m, nmax, i, left_samples;
30+
uint32_t j;
31+
size_t samples = frames * audio_stream_get_channels(sink);
3132

3233
for (j = 0; j < num_sources; j++)
3334
in[j] = audio_stream_get_rptr(sources[j]);
@@ -78,8 +79,9 @@ static void mix_n_s24(struct comp_dev *dev, struct audio_stream *sink,
7879
ae_int32x2 *out = audio_stream_get_wptr(sink);
7980
ae_int32x2 val;
8081
ae_int32x2 sample = AE_ZERO32();
81-
unsigned int n, m, nmax, i, j, left_samples;
82-
unsigned int samples = frames * audio_stream_get_channels(sink);
82+
size_t n, m, nmax, i, left_samples;
83+
uint32_t j;
84+
size_t samples = frames * audio_stream_get_channels(sink);
8385

8486
for (j = 0; j < num_sources; j++)
8587
in[j] = audio_stream_get_rptr(sources[j]);
@@ -124,9 +126,10 @@ static void mix_n_s32(struct comp_dev *dev, struct audio_stream *sink,
124126
ae_int64 sample;
125127
ae_int64 val;
126128
ae_int32x2 res;
127-
unsigned int n, nmax, i, j, left_samples;
128-
unsigned int m = 0;
129-
unsigned int samples = frames * audio_stream_get_channels(sink);
129+
size_t n, nmax, i, left_samples;
130+
size_t m = 0;
131+
uint32_t j;
132+
size_t samples = frames * audio_stream_get_channels(sink);
130133

131134
for (j = 0; j < num_sources; j++)
132135
in[j] = audio_stream_get_rptr(sources[j]);

‎src/audio/volume/volume_generic.c‎

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,10 @@ static void vol_s24_to_s24(struct processing_module *mod, struct cir_buf_source
6363
const int32_t *x, *x0;
6464
int32_t *y, *y0;
6565
int32_t vol;
66-
int nmax, n, i, j;
66+
size_t nmax, n, i;
67+
int j;
6768
const int nch = cd->channels;
68-
int remaining_samples = frames * nch;
69+
size_t remaining_samples = frames * nch;
6970

7071
x = source->ptr;
7172
y = sink->ptr;
@@ -107,9 +108,9 @@ static void vol_passthrough_s24_to_s24(struct processing_module *mod,
107108
struct vol_data *cd = module_get_private_data(mod);
108109
const int32_t *x;
109110
int32_t *y;
110-
int nmax, n;
111+
size_t nmax, n;
111112
const int nch = cd->channels;
112-
int remaining_samples = frames * nch;
113+
size_t remaining_samples = frames * nch;
113114

114115
x = source->ptr;
115116
y = sink->ptr;
@@ -145,9 +146,10 @@ static void vol_s32_to_s32(struct processing_module *mod, struct cir_buf_source
145146
const int32_t *x, *x0;
146147
int32_t *y, *y0;
147148
int32_t vol;
148-
int nmax, n, i, j;
149+
size_t nmax, n, i;
150+
int j;
149151
const int nch = cd->channels;
150-
int remaining_samples = frames * nch;
152+
size_t remaining_samples = frames * nch;
151153

152154
x = source->ptr;
153155
y = sink->ptr;
@@ -193,9 +195,9 @@ static void vol_passthrough_s32_to_s32(struct processing_module *mod,
193195
struct vol_data *cd = module_get_private_data(mod);
194196
const int32_t *x;
195197
int32_t *y;
196-
int nmax, n;
198+
size_t nmax, n;
197199
const int nch = cd->channels;
198-
int remaining_samples = frames * nch;
200+
size_t remaining_samples = frames * nch;
199201

200202
x = source->ptr;
201203
y = sink->ptr;
@@ -231,9 +233,10 @@ static void vol_s16_to_s16(struct processing_module *mod, struct cir_buf_source
231233
const int16_t *x, *x0;
232234
int16_t *y, *y0;
233235
int32_t vol;
234-
int nmax, n, i, j;
236+
size_t nmax, n, i;
237+
int j;
235238
const int nch = cd->channels;
236-
int remaining_samples = frames * nch;
239+
size_t remaining_samples = frames * nch;
237240

238241
x = source->ptr;
239242
y = sink->ptr;
@@ -276,9 +279,9 @@ static void vol_passthrough_s16_to_s16(struct processing_module *mod,
276279
struct vol_data *cd = module_get_private_data(mod);
277280
const int16_t *x;
278281
int16_t *y;
279-
int nmax, n;
282+
size_t nmax, n;
280283
const int nch = cd->channels;
281-
int remaining_samples = frames * nch;
284+
size_t remaining_samples = frames * nch;
282285

283286
x = source->ptr;
284287
y = sink->ptr;

‎src/audio/volume/volume_generic_with_peakvol.c‎

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,10 @@ static void vol_s24_to_s24(struct processing_module *mod, struct cir_buf_source
6060
int32_t *y, *y0;
6161
int32_t vol;
6262
int32_t tmp;
63-
int nmax, n, i, j;
63+
size_t nmax, n, i;
64+
int j;
6465
const int nch = cd->channels;
65-
int remaining_samples = frames * nch;
66+
size_t remaining_samples = frames * nch;
6667

6768
x = source->ptr;
6869
y = sink->ptr;
@@ -109,9 +110,10 @@ static void vol_passthrough_s24_to_s24(struct processing_module *mod,
109110
const int32_t *x, *x0;
110111
int32_t *y, *y0;
111112
int32_t tmp;
112-
int nmax, n, i, j;
113+
size_t nmax, n, i;
114+
int j;
113115
const int nch = cd->channels;
114-
int remaining_samples = frames * nch;
116+
size_t remaining_samples = frames * nch;
115117

116118
x = source->ptr;
117119
y = sink->ptr;
@@ -158,9 +160,10 @@ static void vol_s32_to_s32(struct processing_module *mod, struct cir_buf_source
158160
int32_t *y, *y0;
159161
int32_t vol;
160162
int32_t tmp;
161-
int nmax, n, i, j;
163+
size_t nmax, n, i;
164+
int j;
162165
const int nch = cd->channels;
163-
int remaining_samples = frames * nch;
166+
size_t remaining_samples = frames * nch;
164167

165168
x = source->ptr;
166169
y = sink->ptr;
@@ -211,9 +214,10 @@ static void vol_passthrough_s32_to_s32(struct processing_module *mod,
211214
const int32_t *x, *x0;
212215
int32_t *y, *y0;
213216
int32_t tmp;
214-
int nmax, n, i, j;
217+
size_t nmax, n, i;
218+
int j;
215219
const int nch = cd->channels;
216-
int remaining_samples = frames * nch;
220+
size_t remaining_samples = frames * nch;
217221

218222
x = source->ptr;
219223
y = sink->ptr;
@@ -263,9 +267,10 @@ static void vol_s16_to_s16(struct processing_module *mod, struct cir_buf_source
263267
int16_t *y, *y0;
264268
int32_t vol;
265269
uint32_t tmp;
266-
int nmax, n, i, j;
270+
size_t nmax, n, i;
271+
int j;
267272
const int nch = cd->channels;
268-
int remaining_samples = frames * nch;
273+
size_t remaining_samples = frames * nch;
269274

270275
x = source->ptr;
271276
y = sink->ptr;
@@ -313,9 +318,10 @@ static void vol_passthrough_s16_to_s16(struct processing_module *mod,
313318
const int16_t *x, *x0;
314319
int16_t *y, *y0;
315320
uint32_t tmp;
316-
int nmax, n, i, j;
321+
size_t nmax, n, i;
322+
int j;
317323
const int nch = cd->channels;
318-
int remaining_samples = frames * nch;
324+
size_t remaining_samples = frames * nch;
319325

320326
x = source->ptr;
321327
y = sink->ptr;

0 commit comments

Comments
 (0)