~canonical-hwe-team/hwe-next/+git/pulseaudio:stable-3.x

Last commit made on 2013-02-18
Get this branch:
git clone -b stable-3.x https://git.launchpad.net/~canonical-hwe-team/hwe-next/+git/pulseaudio

Branch merges

Branch information

Recent commits

1db09d3... by Mikel Astiz <email address hidden>

reserve: Fix leaking NameLost signals after release+acquire

The use of the pseudo-blocking D-Bus calls leads to the problem that
NameLost signals are received after the reply to ReleaseName().

The problem with this is that a later acquisition of the same audio
device can potentially receive the NameLost signal corresponding to
the previous instance, due to the fact that the signal hasn't been
popped from the D-Bus message queue.

The simplest approach to solve this problem is to poll the actual name
owner from the D-Bus daemon, in order to make sure that we did really
lose the name.

The proposal uses a blocking call to GetNameOwner to avoid incosistent
states in the internal APIs: it would otherwise be possible to have a
"busy" device before the reservation has been lost, in the unlikely
case if some other process acquires the name before we got the
confirmation that the NameLost was actually true.

88a7b31... by Mikel Astiz <email address hidden>

reserve: Move get_name_owner() to the public rd_device API

The function is interesting for both rd_device and rd_monitor so make
it part of the rd_device public API to avoid duplicated code.

The decision to move the function to reserve.c is motivated by the fact
that other projects (i.e. jack) use reserve.c only. Therefore, adding a
reserve->reserve-monitor dependency should be avoided.

b169140... by Tanu Kaskinen

Initialize monitor's busy status to false if we own the device.

Bug found by David Henningsson.

e02e290... by Tanu Kaskinen

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.

3ffa0bc... by Tanu Kaskinen

build: Don't enable BlueZ if libbluetooth is not found.

Previously, if libsbc was available but libbluetooth was not, BlueZ
would get incorrectly enabled.

e5155b4... by Tanu Kaskinen

man: Update log-target documentation.

299e32b... by David Henningsson

alsa-mixer: Fix the analog-output-speaker-always path

A left over "required-any" made this path useless for most people.
While we're at it, also add "Front Headphone" like for the normal
speaker path.

Tested-by: Colin Guthrie <email address hidden>
Signed-off-by: David Henningsson <email address hidden>

fc2f741... by Arun Raghavan <email address hidden>

build-sys: Bump soname

0f6bbcc... by David Henningsson

alsa-mixer: Add device.icon-name property for some common ports

If we expose this information, UIs can use this to make better
decisions about what icon to display.

Signed-off-by: David Henningsson <email address hidden>

18b79d2... by Arun Raghavan <email address hidden>

build-sys: Bump soname