summaryrefslogtreecommitdiff
path: root/media/libcubeb/src/cubeb_mixer.h
diff options
context:
space:
mode:
Diffstat (limited to 'media/libcubeb/src/cubeb_mixer.h')
-rw-r--r--media/libcubeb/src/cubeb_mixer.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/media/libcubeb/src/cubeb_mixer.h b/media/libcubeb/src/cubeb_mixer.h
new file mode 100644
index 0000000000..d43a237f9e
--- /dev/null
+++ b/media/libcubeb/src/cubeb_mixer.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright © 2016 Mozilla Foundation
+ *
+ * This program is made available under an ISC-style license. See the
+ * accompanying file LICENSE for details.
+ */
+
+#ifndef CUBEB_MIXER
+#define CUBEB_MIXER
+
+#include "cubeb/cubeb.h" // for cubeb_channel_layout and cubeb_stream_params.
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+typedef struct cubeb_mixer cubeb_mixer;
+cubeb_mixer * cubeb_mixer_create(cubeb_sample_format format,
+ uint32_t in_channels,
+ cubeb_channel_layout in_layout,
+ uint32_t out_channels,
+ cubeb_channel_layout out_layout);
+void cubeb_mixer_destroy(cubeb_mixer * mixer);
+int cubeb_mixer_mix(cubeb_mixer * mixer,
+ size_t frames,
+ const void * input_buffer,
+ size_t input_buffer_size,
+ void * output_buffer,
+ size_t output_buffer_size);
+
+unsigned int cubeb_channel_layout_nb_channels(cubeb_channel_layout channel_layout);
+
+#if defined(__cplusplus)
+}
+#endif
+
+#endif // CUBEB_MIXER