[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