diff options
author | Stefano Pigozzi <stefano.pigozzi@gmail.com> | 2014-12-28 09:38:22 +0100 |
---|---|---|
committer | Stefano Pigozzi <stefano.pigozzi@gmail.com> | 2014-12-29 17:56:53 +0100 |
commit | 54aea7d5de13735bad291c0f1d9ba93b17a6321e (patch) | |
tree | 13ca20a462a71329f59f9463c0620df9a620ed70 /audio/chmap_sel.h | |
parent | 461ba50ed6e8227da034e4ebcb4316f34a720274 (diff) | |
download | mpv-54aea7d5de13735bad291c0f1d9ba93b17a6321e.tar.bz2 mpv-54aea7d5de13735bad291c0f1d9ba93b17a6321e.tar.xz |
chmap_sel: add multichannel fallback heuristic
Instead of just failing during channel map selection, try to select a close
layout that makes most sense and upmix/downmix to that instead of failing AO
initialization. The heuristic is rather simple, and uses the following steps:
1) If mono is required always prefer stereo to a multichannel upmix.
2) Search for an upmix that is an exact superset of the required channel map.
3) Search for a downmix that is the exact subset of the required channel map.
4) Search for either an upmix or downmix that is the closest (minimum difference
of channels) to the required channel map.
Diffstat (limited to 'audio/chmap_sel.h')
-rw-r--r-- | audio/chmap_sel.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/audio/chmap_sel.h b/audio/chmap_sel.h index 7758ca5d74..ae80fa5bc3 100644 --- a/audio/chmap_sel.h +++ b/audio/chmap_sel.h @@ -41,6 +41,7 @@ void mp_chmap_sel_add_alsa_def(struct mp_chmap_sel *s); void mp_chmap_sel_add_map(struct mp_chmap_sel *s, const struct mp_chmap *map); void mp_chmap_sel_add_speaker(struct mp_chmap_sel *s, int id); bool mp_chmap_sel_adjust(const struct mp_chmap_sel *s, struct mp_chmap *map); +bool mp_chmap_sel_fallback(const struct mp_chmap_sel *s, struct mp_chmap *map); bool mp_chmap_sel_get_def(const struct mp_chmap_sel *s, struct mp_chmap *map, int num); |