summaryrefslogtreecommitdiffstats
path: root/audio/aconverter.h
diff options
context:
space:
mode:
Diffstat (limited to 'audio/aconverter.h')
-rw-r--r--audio/aconverter.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/audio/aconverter.h b/audio/aconverter.h
new file mode 100644
index 0000000000..57c5524c2f
--- /dev/null
+++ b/audio/aconverter.h
@@ -0,0 +1,39 @@
+#pragma once
+
+#include <stdbool.h>
+
+#include "chmap.h"
+
+struct mp_aconverter;
+struct mp_aframe;
+struct mpv_global;
+struct mp_log;
+
+struct mp_resample_opts {
+ int filter_size;
+ int phase_shift;
+ int linear;
+ double cutoff;
+ int normalize;
+ int allow_passthrough;
+ char **avopts;
+};
+
+#define MP_RESAMPLE_OPTS_DEF { \
+ .filter_size = 16, \
+ .cutoff = 0.0, \
+ .phase_shift = 10, \
+ .normalize = -1, \
+ }
+
+struct mp_aconverter *mp_aconverter_create(struct mpv_global *global,
+ struct mp_log *log,
+ const struct mp_resample_opts *opts);
+bool mp_aconverter_reconfig(struct mp_aconverter *p,
+ int in_rate, int in_format, struct mp_chmap in_channels,
+ int out_rate, int out_format, struct mp_chmap out_channels);
+void mp_aconverter_flush(struct mp_aconverter *p);
+void mp_aconverter_set_speed(struct mp_aconverter *p, double speed);
+bool mp_aconverter_write_input(struct mp_aconverter *p, struct mp_aframe *in);
+struct mp_aframe *mp_aconverter_read_output(struct mp_aconverter *p, bool *eof);
+double mp_aconverter_get_latency(struct mp_aconverter *p);