diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c index c5a72c321..2fdebe08b 100644 --- a/src/modules/alsa/alsa-sink.c +++ b/src/modules/alsa/alsa-sink.c @@ -2226,7 +2226,13 @@ pa_sink *pa_alsa_sink_new(pa_module *m, pa_modargs *ma, const char*driver, pa_ca pa_log_info("Disabling latency range changes on underrun"); } - if (is_iec958(u) || is_hdmi(u)) + /* All passthrough formats supported by PulseAudio require + * IEC61937 framing with two fake channels. So, passthrough + * clients will always send two channels. Multichannel sinks + * cannot accept that, because nobody implemented sink channel count + * switching so far. So just don't show known non-working settings + * to the user. */ + if ((is_iec958(u) || is_hdmi(u)) && ss.channels == 2) set_formats = true; u->rates = pa_alsa_get_supported_rates(u->pcm_handle, ss.rate);