[pulseaudio-discuss] Purpose of ports that represent multiple UCM devices?

Arun Raghavan arun at arunraghavan.net
Sun Jun 14 16:38:28 UTC 2020


On Sun, 14 Jun 2020, at 9:18 AM, Jaroslav Kysela wrote:
> Dne 10. 06. 20 v 11:20 Arun Raghavan napsal(a):
> > On Wed, 10 Jun 2020, at 5:15 AM, Tanu Kaskinen wrote:
> >> Hi,
> >>
> >> I did some work in PulseAudio's UCM code, and I got frustrated by the
> >> "combined port" concept. We spend a lot of effort supporting the case
> >> where one port represents multiple UCM devices, but I don't understand
> >> why we do that. Do you know some use case for that? I would like to
> >> drop the feature altogether.
> > 
> > UCM has the notion of being able to have multiple concurrently active devices in a verb. For example, for a phone with headphones plugged in, when a ringtone/alarm needs to be played, you might want to enable the handset and headphone device.
> > 
> > This is done with the SupportedDevices/ConflictDevices options in UCM.
> > 
> > While the use case is still relevant, I'm not sure if there are better ways to do this. I'll let Jaroslav chime in on that.
> 
> At first, there's a bug in the PA code which skips the combination of the 
> devices without both supported/conflicting lists:
> 
> diff --git a/src/modules/alsa/alsa-ucm.c b/src/modules/alsa/alsa-ucm.c
> index 1dfb0e08b..9f7a84c52 100644
> --- a/src/modules/alsa/alsa-ucm.c
> +++ b/src/modules/alsa/alsa-ucm.c
> @@ -1182,9 +1182,6 @@ static int ucm_check_conformance(
>                   return 0;
>               }
>           }
> -    } else { /* not support any other devices */
> -        pa_log_debug("Not support any other devices");
> -        return 0;
>       }
> 
>       pa_log_debug("Device added to combination, number %d", dev_num + 1);
> 
> 
> ... but the specification is really straight about this case (use-case.h):
> 
> "Note that at most one of the supported/conflicting devs lists has
> any entries, and when neither is present, all devices are supported."
> 
> So my above patch will follow the specification.
> 
> The simultaneous use of UCM devices is allowed. But I agree that the usability 
> for the desktop is a bit questionable. Users mostly expect to route the audio 
> to one device.

The multiple devices are a lot of noise, so I'm okay not being spec-compliant here. If this becomes problematic, we can make it a config flag on the module.

Better yet, we could change the UCM spec in this regard if other clients also agree.

-- Arun


More information about the pulseaudio-discuss mailing list