aboutsummaryrefslogtreecommitdiffstats
path: root/src/pcm_mix.h
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-02-21 18:14:20 +0100
committerMax Kellermann <max@duempel.org>2009-02-21 18:14:20 +0100
commitf0554d9a75abab093fe5169bdab6b6b75ae4f97a (patch)
tree041e132660e2c6ea0865306d19d7a45314e0a7a8 /src/pcm_mix.h
parentcae7c160a3084acf9e68845b16bae34772d18e4e (diff)
downloadmpd-f0554d9a75abab093fe5169bdab6b6b75ae4f97a.tar.gz
mpd-f0554d9a75abab093fe5169bdab6b6b75ae4f97a.tar.xz
mpd-f0554d9a75abab093fe5169bdab6b6b75ae4f97a.zip
pcm: added API documentation
Diffstat (limited to 'src/pcm_mix.h')
-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);