From ab8f28a672fbd8d21a98c265976068e80be082a7 Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 9 May 2013 15:12:16 +0200 Subject: 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. --- audio/chmap.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'audio/chmap.h') 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 -- cgit v1.2.3