summaryrefslogtreecommitdiffstats
path: root/audio/chmap.h
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-05-09 15:12:16 +0200
committerwm4 <wm4@nowhere>2013-05-12 21:24:57 +0200
commitab8f28a672fbd8d21a98c265976068e80be082a7 (patch)
treec3dd738bf7711c23dba5e2ed45c234f34024523b /audio/chmap.h
parent34a139d49533386c104edbc1b0ed226201989bb9 (diff)
downloadmpv-ab8f28a672fbd8d21a98c265976068e80be082a7.tar.bz2
mpv-ab8f28a672fbd8d21a98c265976068e80be082a7.tar.xz
audio: add channel map selection function
The point is selecting a minimal fallback. The AOs will call this through the AO API, so it will be possible to add options affecting the general channel layout selection. It provides the following mechanism to AOs: - forcing the correct channel order - downmixing to stereo if no layout is available - allow 5.1 <-> 5.1(side) fallback - handling "unknown" channel layouts This is quite weak and lots of code/complexity for little gain. All AOs already made sure the channel order was correct, and the fallback is of little value, and could perhaps be done in the frontend instead, like stereo downmixing with --channels=2 is handled. But I'm not really sure how this stuff should _really_ work, and the new code will hopefully provides enough flexibility to make radical changes to channel layout negotiation easier.
Diffstat (limited to 'audio/chmap.h')
-rw-r--r--audio/chmap.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/audio/chmap.h b/audio/chmap.h
index 9ab97ac8ba..929283dfd5 100644
--- a/audio/chmap.h
+++ b/audio/chmap.h
@@ -104,6 +104,7 @@ void mp_chmap_reorder_norm(struct mp_chmap *map);
void mp_chmap_from_channels(struct mp_chmap *dst, int num_channels);
void mp_chmap_set_unknown(struct mp_chmap *dst, int num_channels);
+void mp_chmap_from_channels_alsa(struct mp_chmap *dst, int num_channels);
void mp_chmap_remove_useless_channels(struct mp_chmap *map,
const struct mp_chmap *requested);
@@ -115,8 +116,6 @@ void mp_chmap_from_lavc(struct mp_chmap *dst, uint64_t src);
bool mp_chmap_is_lavc(const struct mp_chmap *src);
void mp_chmap_reorder_to_lavc(struct mp_chmap *map);
-void mp_chmap_reorder_to_alsa(struct mp_chmap *map);
-
void mp_chmap_get_reorder(int dst[MP_NUM_CHANNELS], const struct mp_chmap *from,
const struct mp_chmap *to);
@@ -130,4 +129,6 @@ void mp_chmap_print_help(int msgt, int msgl);
#define mp_chmap_is_waveext mp_chmap_is_lavc
#define mp_chmap_reorder_to_waveext mp_chmap_reorder_to_lavc
+#define mp_chmap_reorder_to_alsa(x) mp_chmap_from_channels_alsa((x), (x)->num)
+
#endif