pulseaudio/src
Tanu Kaskinen dd7cf7ad5e Call change_cb() only when there's an actual change.
Calling change_cb() whenever anything happens in the ownership of the
bus name caused trouble in PulseAudio in this scenario:

1. PulseAudio is using a device and owns the corresponding service
   name.
2. Another application requests device release.
3. PulseAudio releases the device.
4. Change in the bus name ownership: PulseAudio gives up the
   ownership, and nobody owns the name.
5. reserve-monitor notices that, and notifies PulseAudio.
6. Since reserve-monitor reports the device as "not busy", PulseAudio
   decides to reserve the bus name immediately back to itself and
   opens the device again.

The other application will forcibly take the bus name to itself, as
it should according to the protocol, but the other application may
have trouble opening the device if it tries to do that before
PulseAudio has had time to react to the NameLost signal.

This can be solved by not calling change_cb() if there are no changes
in the device busy status. In this scenario the device is considered
"not busy" while PulseAudio is owning the bus name, so PulseAudio gets
no notification when the ownership changes from PulseAudio to nobody.
2013-01-17 11:12:44 +01:00
..
daemon cpulimit: Explicitly ignore pa_read() return value. 2012-12-19 12:31:50 +02:00
modules Call change_cb() only when there's an actual change. 2013-01-17 11:12:44 +01:00
pulse pulse: Initialize pa_operation objects to all-zero. 2013-01-13 03:15:23 +02:00
pulsecore shm: Support Solaris shm file paths. 2013-01-04 16:31:57 +02:00
tests tests: Fix allowed sample formats in resampler-test usage text 2013-01-04 15:51:11 +02:00
utils Fix pa_parse_boolean() return value checking. 2012-12-19 12:31:50 +02:00
.gitignore .gitignore: Add cpu-test. 2012-09-07 17:22:10 +03:00
depmod.py remove remaining $ 2008-06-18 22:38:32 +02:00
Makefile.am role-ducking: Apply a ducking effect based on streams roles 2012-12-19 12:31:48 +02:00
map-file pulse: Add pa_operation_set_state_callback() API 2013-01-12 17:55:07 +02:00