ao_alsa: _really_ disable chmap API use in cases where we should

set_chmap() skipped _setting_ the ALSA chmap if chmap use was requested
to be disabled by setting dev_chmap.num=0 by the caller, but it still
queried the current ALSA channel map. We don't trust it that much, so
disable that as well.

But we still query and log it, because that could be helpful for
debugging. Otherwise we could skip the entire set_chmap() call in these
cases.
This commit is contained in:
wm4 2016-11-08 17:06:00 +01:00
parent 2b71bef2ba
commit 2e113a7391
1 changed files with 7 additions and 3 deletions

View File

@ -488,10 +488,14 @@ static int set_chmap(struct ao *ao, struct mp_chmap *dev_chmap, int num_channels
} else if (chmap.num != num_channels) {
MP_WARN(ao, "ALSA channel map conflicts with channel count!\n");
} else {
MP_VERBOSE(ao, "using the ALSA channel map.\n");
if (mp_chmap_equals(&chmap, &ao->channels))
if (mp_chmap_equals(&chmap, &ao->channels)) {
MP_VERBOSE(ao, "which is what we requested.\n");
ao->channels = chmap;
} else if (!mp_chmap_is_valid(dev_chmap)) {
MP_VERBOSE(ao, "ignoring the ALSA channel map.\n");
} else {
MP_VERBOSE(ao, "using the ALSA channel map.\n");
ao->channels = chmap;
}
}
free(alsa_chmap);