[pulseaudio-discuss] [PATCH RESEND] alsa-sink: Don't pretend to support passthrough on HDMI surround sinks
Arun Raghavan
arun at accosted.net
Fri Dec 4 04:21:12 PST 2015
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
More information about the pulseaudio-discuss
mailing list