summaryrefslogtreecommitdiff
path: root/src/audio.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio.h')
-rw-r--r--src/audio.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/audio.h b/src/audio.h
new file mode 100644
index 0000000..b31c77f
--- /dev/null
+++ b/src/audio.h
@@ -0,0 +1,40 @@
+#ifndef _AUDIO_H_
+#define _AUDIO_H_
+
+#include <glib.h>
+
+#include <gst/gst.h>
+#include <gst/app/gstappsrc.h>
+#include <gst/app/gstappsink.h>
+#include <gst/app/gstappbuffer.h>
+
+#include <celt/celt.h>
+#include <celt/celt_header.h>
+
+struct cmumble_audio {
+ GstElement *record_pipeline;
+ GstAppSink *sink;
+
+ uint8_t celt_header_packet[sizeof(CELTHeader)];
+ CELTHeader celt_header;
+ CELTMode *celt_mode;
+};
+
+struct context;
+struct user;
+
+int
+cmumble_audio_init(struct context *ctx);
+
+int
+cmumble_audio_fini(struct context *ctx);
+
+int
+cmumble_audio_create_playback_pipeline(struct context *ctx,
+ struct user *user);
+
+void
+cmumble_audio_push(struct context *ctx, struct user *user,
+ const uint8_t *data, gsize size);
+
+#endif /* _AUDIO_H_ */