Skip to content

Commit 519a115

Browse files
authored
Merge pull request #149 from singalsu/mixer_attenuation_fix_proposal
Mixer: Remove attenuation and apply saturation to mixed audio
2 parents 3a29be9 + d77a98e commit 519a115

1 file changed

Lines changed: 4 additions & 5 deletions

File tree

src/audio/mixer.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
#include <sof/stream.h>
3737
#include <sof/alloc.h>
3838
#include <sof/audio/component.h>
39+
#include <sof/audio/format.h>
3940

4041
#define trace_mixer(__e) trace_event(TRACE_CLASS_MIXER, __e)
4142
#define tracev_mixer(__e) tracev_event(TRACE_CLASS_MIXER, __e)
@@ -66,15 +67,13 @@ static void mix_n(struct comp_dev *dev, struct comp_buffer *sink,
6667
val[1] = 0;
6768
for (j = 0; j < num_sources; j++) {
6869
src = sources[j]->r_ptr;
69-
70-
/* TODO: clamp */
7170
val[0] += src[i];
7271
val[1] += src[i + 1];
7372
}
7473

75-
/* TODO: best place for attenuation ? */
76-
dest[i] = (val[0] >> (num_sources >> 1));
77-
dest[i + 1] = (val[1] >> (num_sources >> 1));
74+
/* Saturate to 32 bits */
75+
dest[i] = sat_int32(val[0]);
76+
dest[i + 1] = sat_int32(val[1]);
7877
}
7978
}
8079

0 commit comments

Comments
 (0)