Bug 95202

Summary: module-device-manager reroutes streams too eagerly
Product: PulseAudio Reporter: Tanu Kaskinen <tanuk>
Component: modulesAssignee: pulseaudio-bugs
Status: RESOLVED MOVED QA Contact: pulseaudio-bugs
Severity: normal    
Priority: medium CC: lennart
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Tanu Kaskinen 2016-04-29 10:17:11 UTC
Whenever something changes on a stream, module-device-manager (with do_routing=true) will re-evaluate the stream's routing to react to stream role changes. module-device-manager will not reroute streams that have pa_sink_input.save_sink set, which avoids rerouting of manually routed streams most of the time.

When an application creates a new playback stream, it may set the sink for the new stream. That counts as manual routing, so device-manager should not reroute the stream as long as the requested sink stays available, but such streams don't have save_sink set, so rerouting does happen.

An example:

    paplay --device=foo somefile.ogg

That will play the audio to sink "foo", which in this example is not what device-manager would prefer to use. Now let's change the volume:

    pactl set-sink-input-volume 42 +5%

That volume change will trigger rerouting in device-manager, so the stream gets moved to a different sink!

We should make it possible to distinguish between all three cases:

* manually routed streams with persistent device configuration (can be done currently by checking save_sink == true)

* manually routed streams with ephemeral device configuration (can't be done currently, except during stream creation)

* automatically routed streams (can be done currently by checking save_sink == false)
Comment 1 GitLab Migration User 2018-07-30 10:19:56 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/350.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.