summaryrefslogtreecommitdiffstats
path: root/src/sample.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/sample.h')
-rw-r--r--src/sample.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/sample.h b/src/sample.h
new file mode 100644
index 00000000..ecbe33f2
--- /dev/null
+++ b/src/sample.h
@@ -0,0 +1,35 @@
+#ifndef foosamplehfoo
+#define foosamplehfoo
+
+#include <inttypes.h>
+
+#include "memblock.h"
+
+enum sample_format {
+ SAMPLE_U8,
+ SAMPLE_ALAW,
+ SAMPLE_ULAW,
+ SAMPLE_S16LE,
+ SAMPLE_S16BE,
+ SAMPLE_FLOAT32
+};
+
+#define SAMPLE_S16NE SAMPLE_S16LE
+
+struct sample_spec {
+ enum sample_format format;
+ uint32_t rate;
+ uint32_t channels;
+};
+
+#define DEFAULT_SAMPLE_SPEC default_sample_spec
+
+extern struct sample_spec default_sample_spec;
+
+struct memblock *silence(struct memblock* b, struct sample_spec *spec);
+void add_clip(struct memchunk *target, struct memchunk *chunk, struct sample_spec *spec);
+
+size_t bytes_per_second(struct sample_spec *spec);
+size_t sample_size(struct sample_spec *spec);
+
+#endif