aboutsummaryrefslogtreecommitdiffstats
path: root/src/pcm_mix.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/pcm_mix.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/pcm_mix.h b/src/pcm_mix.h
index f3fe3c365..28b338f23 100644
--- a/src/pcm_mix.h
+++ b/src/pcm_mix.h
@@ -23,6 +23,19 @@
struct audio_format;
+/*
+ * Linearly mixes two PCM buffers. Both must have the same length and
+ * the same audio format. The formula is:
+ *
+ * s1 := s1 * portion1 + s2 * (1 - portion1)
+ *
+ * @param buffer1 the first PCM buffer, and the destination buffer
+ * @param buffer2 the second PCM buffer
+ * @param size the size of both buffers in bytes
+ * @param format the audio format of both buffers
+ * @param portion1 a number between 0.0 and 1.0 specifying the portion
+ * of the first buffer in the mix; portion2 = (1.0 - portion1)
+ */
void
pcm_mix(void *buffer1, const void *buffer2, size_t size,
const struct audio_format *format, float portion1);