On 27 November 2015 at 18:00, Alexander E. Patrakov <patrakov at gmail.com> wrote: > It doesn't work currently (fails and falls back to PCM), due to channel > count mismatch between the sink sample spec and the sample spec required > by IEC61937. > > To be reverted when someone implements changing channel count without > switching profiles. This would also be required for HBR passthrough over > HDMI. > > Reported-by: Xamindar <junkxamindar at gmail.com> > Signed-off-by: Alexander E. Patrakov <patrakov at gmail.com> > --- > src/modules/alsa/alsa-sink.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/src/modules/alsa/alsa-sink.c b/src/modules/alsa/alsa-sink.c > index c5a72c3..2fdebe0 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); > -- Pushed, thank you. -- Arun