summaryrefslogtreecommitdiffstats
path: root/audio/out/ao.h
diff options
context:
space:
mode:
Diffstat (limited to 'audio/out/ao.h')
-rw-r--r--audio/out/ao.h14
1 files changed, 10 insertions, 4 deletions
diff --git a/audio/out/ao.h b/audio/out/ao.h
index 4a7c928824..d908841457 100644
--- a/audio/out/ao.h
+++ b/audio/out/ao.h
@@ -23,6 +23,8 @@
#include "core/bstr.h"
#include "core/mp_common.h"
+#include "audio/chmap.h"
+#include "audio/chmap_sel.h"
enum aocontrol {
// _VOLUME commands take struct ao_control_vol pointer for input/output.
@@ -55,7 +57,7 @@ typedef struct ao_info {
/* interface towards mplayer and */
typedef struct ao_old_functions {
int (*control)(int cmd, void *arg);
- int (*init)(int rate, int channels, int format, int flags);
+ int (*init)(int rate, const struct mp_chmap *channels, int format, int flags);
void (*uninit)(int immed);
void (*reset)(void);
int (*get_space)(void);
@@ -68,7 +70,6 @@ typedef struct ao_old_functions {
struct ao;
struct ao_driver {
- bool is_new;
bool encode;
const struct ao_info *info;
const struct ao_old_functions *old_functions;
@@ -86,9 +87,9 @@ struct ao_driver {
/* global data used by mplayer and plugins */
struct ao {
int samplerate;
- int channels;
+ struct mp_chmap channels;
int format;
- int bps;
+ int bps; // bytes per second
int outburst;
int buffersize;
double pts;
@@ -121,6 +122,11 @@ void ao_reset(struct ao *ao);
void ao_pause(struct ao *ao);
void ao_resume(struct ao *ao);
+bool ao_chmap_sel_adjust(struct ao *ao, const struct mp_chmap_sel *s,
+ struct mp_chmap *map);
+bool ao_chmap_sel_get_def(struct ao *ao, const struct mp_chmap_sel *s,
+ struct mp_chmap *map, int num);
+
int old_ao_control(struct ao *ao, enum aocontrol cmd, void *arg);
int old_ao_init(struct ao *ao, char *params);
void old_ao_uninit(struct ao *ao, bool cut_audio);