Skip to content

Commit

Permalink
Audio: Add comments to crossover_s32_default function
Browse files Browse the repository at this point in the history
Add detailed comments to describe the logic in crossover_s32_default.
This helps in understanding the function's flow and the purpose of
each section.

Signed-off-by: Shriram Shastry <[email protected]>
  • Loading branch information
ShriramShastry committed Jun 24, 2024
1 parent 28a5265 commit a8273f2
Showing 1 changed file with 18 additions and 12 deletions.
30 changes: 18 additions & 12 deletions src/audio/crossover/crossover_generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -225,32 +225,38 @@ static void crossover_s32_default(struct comp_data *cd,
int32_t num_sinks,
uint32_t frames)
{
/* Array to hold active sink streams; initialized to null */
struct audio_stream *sink_stream[SOF_CROSSOVER_MAX_STREAMS] = { NULL };
struct crossover_state *state;
const struct audio_stream *source_stream = bsource->data;
struct audio_stream *sink_stream;
int32_t *x, *y;
int ch, i, j;
int idx;
int active_sinks = 0; /* Counter for active sink streams */
int nch = audio_stream_get_channels(source_stream);
int32_t out[num_sinks];

/* Identify active sinks, avoid processing null sinks later */
for (j = 0; j < num_sinks; j++) {
if (bsinks[j])
sink_stream[active_sinks++] = bsinks[j]->data;
}

/* Process for each channel */
for (ch = 0; ch < nch; ch++) {
idx = ch;
/* Set current crossover state */
state = &cd->state[ch];
for (i = 0; i < frames; i++) {
/* Iterate over frames */
for (i = 0, idx = ch; i < frames; i++, idx += nch) {
/* Read source */
x = audio_stream_read_frag_s32(source_stream, idx);
cd->crossover_split(*x, out, state);

for (j = 0; j < num_sinks; j++) {
if (!bsinks[j])
continue;
sink_stream = bsinks[j]->data;
y = audio_stream_write_frag_s32(sink_stream,
idx);
/* Write output to active sinks */
for (j = 0; j < active_sinks; j++) {
y = audio_stream_write_frag_s32(sink_stream[j], idx);
/* Copy processed data to sink */
*y = out[j];
}

idx += nch;
}
}
}
Expand Down

0 comments on commit a8273f2

Please sign in to comment.