diff options
author | wm4 <wm4@nowhere> | 2013-05-09 15:12:16 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-05-12 21:24:57 +0200 |
commit | ab8f28a672fbd8d21a98c265976068e80be082a7 (patch) | |
tree | c3dd738bf7711c23dba5e2ed45c234f34024523b /audio/chmap.h | |
parent | 34a139d49533386c104edbc1b0ed226201989bb9 (diff) | |
download | mpv-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.h | 5 |
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 |