Skip to content

Commit c69d8df

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 5fd74a9 commit c69d8df

15 files changed

Lines changed: 259 additions & 235 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/dcblock/dcblock_generic.c‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,12 @@ static int dcblock_s16_default(struct comp_data *cd,
5353
{
5454
const int16_t *x = source->ptr;
5555
int16_t *y = sink->ptr;
56-
int samples_without_wrap;
56+
size_t samples_without_wrap;
5757
int nch = cd->channels;
58-
int remaining_samples = frames * nch;
58+
size_t remaining_samples = frames * nch;
5959
int32_t tmp;
6060
int ch = 0;
61-
int i;
61+
size_t i;
6262

6363
while (remaining_samples) {
6464
samples_without_wrap = cir_buf_samples_without_wrap_s16(x, source->buf_end);
@@ -100,12 +100,12 @@ static int dcblock_s24_default(struct comp_data *cd,
100100
{
101101
const int32_t *x = source->ptr;
102102
int32_t *y = sink->ptr;
103-
int samples_without_wrap;
103+
size_t samples_without_wrap;
104104
int nch = cd->channels;
105-
int remaining_samples = frames * nch;
105+
size_t remaining_samples = frames * nch;
106106
int32_t tmp;
107107
int ch = 0;
108-
int i;
108+
size_t i;
109109

110110
while (remaining_samples) {
111111
samples_without_wrap = cir_buf_samples_without_wrap_s32(x, source->buf_end);
@@ -147,11 +147,11 @@ static int dcblock_s32_default(struct comp_data *cd,
147147
{
148148
const int32_t *x = source->ptr;
149149
int32_t *y = sink->ptr;
150-
int samples_without_wrap;
150+
size_t samples_without_wrap;
151151
int nch = cd->channels;
152-
int remaining_samples = frames * nch;
152+
size_t remaining_samples = frames * nch;
153153
int ch = 0;
154-
int i;
154+
size_t i;
155155

156156
while (remaining_samples) {
157157
samples_without_wrap = cir_buf_samples_without_wrap_s32(x, source->buf_end);

‎src/audio/drc/drc_generic.c‎

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -508,18 +508,18 @@ static inline void drc_pre_delay_index_inc(int *idx, int increment)
508508
static void drc_delay_input_sample_s16(struct drc_state *state,
509509
const struct cir_buf_source *source,
510510
struct cir_buf_sink *sink,
511-
const int16_t **x, int16_t **y, int samples, int nch)
511+
const int16_t **x, int16_t **y, size_t samples, int nch)
512512
{
513513
const int16_t *x1;
514514
int16_t *y1;
515515
int16_t *pd;
516516
int pd_write_index, pd_read_index;
517-
int nbuf, npcm, nfrm;
517+
size_t nbuf, npcm, nfrm;
518518
int ch;
519-
int i;
519+
size_t i;
520520
const int16_t *x0 = *x;
521521
int16_t *y0 = *y;
522-
int remaining_samples = samples;
522+
size_t remaining_samples = samples;
523523

524524
while (remaining_samples) {
525525
nbuf = cir_buf_samples_without_wrap_s16(x0, source->buf_end);
@@ -562,11 +562,11 @@ static void drc_s16_default(struct processing_module *mod,
562562
int nch = cd->channels;
563563
const int16_t *x = (int16_t *)source->ptr;
564564
int16_t *y = (int16_t *)sink->ptr;
565-
int samples = frames * nch;
565+
size_t samples = frames * nch;
566566
struct drc_state *state = &cd->state;
567567
const struct sof_drc_params *p = &cd->config->params; /* Read-only */
568-
int fragment_samples;
569-
int fragment;
568+
size_t fragment_samples;
569+
size_t fragment;
570570

571571
if (!cd->enabled) {
572572
/* Delay the input sample only and don't do other processing. This is used when the
@@ -602,18 +602,18 @@ static void drc_s16_default(struct processing_module *mod,
602602
static void drc_delay_input_sample_s32(struct drc_state *state,
603603
const struct cir_buf_source *source,
604604
struct cir_buf_sink *sink,
605-
const int32_t **x, int32_t **y, int samples, int nch)
605+
const int32_t **x, int32_t **y, size_t samples, int nch)
606606
{
607607
const int32_t *x1;
608608
int32_t *y1;
609609
int32_t *pd;
610610
int pd_write_index, pd_read_index;
611-
int nbuf, npcm, nfrm;
611+
size_t nbuf, npcm, nfrm;
612612
int ch;
613-
int i;
613+
size_t i;
614614
const int32_t *x0 = *x;
615615
int32_t *y0 = *y;
616-
int remaining_samples = samples;
616+
size_t remaining_samples = samples;
617617

618618
while (remaining_samples) {
619619
nbuf = cir_buf_samples_without_wrap_s32(x0, source->buf_end);
@@ -652,18 +652,18 @@ static void drc_delay_input_sample_s32(struct drc_state *state,
652652
static void drc_delay_input_sample_s24(struct drc_state *state,
653653
const struct cir_buf_source *source,
654654
struct cir_buf_sink *sink,
655-
const int32_t **x, int32_t **y, int samples, int nch)
655+
const int32_t **x, int32_t **y, size_t samples, int nch)
656656
{
657657
const int32_t *x1;
658658
int32_t *y1;
659659
int32_t *pd;
660660
int pd_write_index, pd_read_index;
661-
int nbuf, npcm, nfrm;
661+
size_t nbuf, npcm, nfrm;
662662
int ch;
663-
int i;
663+
size_t i;
664664
const int32_t *x0 = *x;
665665
int32_t *y0 = *y;
666-
int remaining_samples = samples;
666+
size_t remaining_samples = samples;
667667

668668
while (remaining_samples) {
669669
nbuf = cir_buf_samples_without_wrap_s32(x0, source->buf_end);
@@ -706,11 +706,11 @@ static void drc_s24_default(struct processing_module *mod,
706706
int nch = cd->channels;
707707
const int32_t *x = (int32_t *)source->ptr;
708708
int32_t *y = (int32_t *)sink->ptr;
709-
int samples = frames * nch;
709+
size_t samples = frames * nch;
710710
struct drc_state *state = &cd->state;
711711
const struct sof_drc_params *p = &cd->config->params; /* Read-only */
712-
int fragment_samples;
713-
int fragment;
712+
size_t fragment_samples;
713+
size_t fragment;
714714

715715
if (!cd->enabled) {
716716
/* Delay the input sample only and don't do other processing. This is used when the
@@ -754,11 +754,11 @@ static void drc_s32_default(struct processing_module *mod,
754754
int nch = cd->channels;
755755
const int32_t *x = (int32_t *)source->ptr;
756756
int32_t *y = (int32_t *)sink->ptr;
757-
int samples = frames * nch;
757+
size_t samples = frames * nch;
758758
struct drc_state *state = &cd->state;
759759
const struct sof_drc_params *p = &cd->config->params; /* Read-only */
760-
int fragment_samples;
761-
int fragment;
760+
size_t fragment_samples;
761+
size_t fragment;
762762

763763
if (!cd->enabled) {
764764
/* Delay the input sample only and don't do other processing. This is used when the

‎src/audio/mixer/mixer_generic.c‎

Lines changed: 21 additions & 27 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 */
@@ -63,14 +61,12 @@ static void mix_n_s24(struct comp_dev *dev, struct audio_stream *sink,
6361
uint32_t frames)
6462
{
6563
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 */
@@ -111,13 +107,11 @@ static void mix_n_s32(struct comp_dev *dev, struct audio_stream *sink,
111107
uint32_t frames)
112108
{
113109
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]);

0 commit comments

Comments
 (0)