[pulseaudio-commits] src/modules

Arun Raghavan arun at kemper.freedesktop.org
Fri Dec 4 04:20:47 PST 2015


 src/modules/alsa/alsa-sink.c |    8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

New commits:
commit 04737989ec537e01d63c155807a5d19b0ec5b294
Author: Alexander E. Patrakov <patrakov at gmail.com>
Date:   Fri Nov 27 17:30:38 2015 +0500

    alsa-sink: Don't pretend to support passthrough on HDMI surround sinks
    
    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>

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);



More information about the pulseaudio-commits mailing list