[pulseaudio-discuss] module-bluetooth-device does not automatically select the a2dp profile when pulseaudio is loaded

Erwan Martin main at zewaren.net
Sun Jan 29 15:20:52 PST 2012


Hi list,

I'm trying to use pulseaudio with a bluetooth a2dp connection  (with 
module-bluetooth-device and module-bluetooth-discover; i.e. without alsa).

My problem is that the A2DP profile is not automatically selected for 
the bluetooth card when pulseaudio is loaded when the a2dp connection is 
already active.
Here is the relevant log part:

# pulsaudio -C -vvvv
[...]
D: module-bluetooth-discover.c: Loading module-bluetooth-device 
address="DE:AD:BE:EF:00:00" 
path="/org/bluez/1062/hci0/dev_DE:AD:BA:BE:00:00"
I: module-card-restore.c: Restoring profile for card 
bluez_card.DE:AD:BA:BE:00:00.
I: card.c: Created 1 "bluez_card.DE:AD:BA:BE:00:00"
W: module-bluetooth-device.c: Default profile not connected, selecting 
off profile
D: module-bluetooth-device.c: Connected to the bluetooth audio service
I: module.c: Loaded "module-bluetooth-device" (index: #17; argument: 
"address="DE:AD:BE:EF:00:00" 
path="/org/bluez/1062/hci0/dev_DE:AD:BA:BE:00:00"").

If I restart the bluetooth stack and create the a2dp connection after 
pulseaudio is loaded (using dbus commands), then the profile gets 
selected, the sink is created and the audio streams:

D: bluetooth-util.c: dbus: interface=org.freedesktop.DBus, 
path=/org/freedesktop/DBus, member=NameOwnerChanged
D: bluetooth-util.c: Bluetooth daemon disappeared.
D: module-bluetooth-discover.c: Unloading module for 
/org/bluez/1643/hci0/dev_DE:AD:BA:BE:00:00
D: module-console-kit.c: dbus: interface=org.freedesktop.DBus, 
path=/org/freedesktop/DBus, member=NameOwnerChanged
D: module-bluetooth-device.c: dbus: interface=org.freedesktop.DBus, 
path=/org/freedesktop/DBus, member=NameOwnerChanged
I: module.c: Unloading "module-bluetooth-device" (index: #17).
I: card.c: Freed 1 "bluez_card.DE:AD:BA:BE:00:00"
I: module.c: Unloaded "module-bluetooth-device" (index: #17).
D: bluetooth-util.c: dbus: interface=org.freedesktop.DBus, 
path=/org/freedesktop/DBus, member=NameOwnerChanged
D: bluetooth-util.c: Bluetooth daemon appeared.
D: module-console-kit.c: dbus: interface=org.freedesktop.DBus, 
path=/org/freedesktop/DBus, member=NameOwnerChanged
D: bluetooth-util.c: dbus: interface=org.bluez.Manager, path=/, 
member=AdapterAdded
D: bluetooth-util.c: Adapter /org/bluez/1670/hci0 created
D: module-console-kit.c: dbus: interface=org.bluez.Manager, path=/, 
member=AdapterAdded
D: bluetooth-util.c: dbus: interface=org.bluez.AudioSink, 
path=/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00, member=PropertyChanged
D: module-console-kit.c: dbus: interface=org.bluez.AudioSink, 
path=/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00, member=PropertyChanged
D: bluetooth-util.c: dbus: interface=org.bluez.Audio, 
path=/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00, member=PropertyChanged
D: module-console-kit.c: dbus: interface=org.bluez.Audio, 
path=/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00, member=PropertyChanged
D: bluetooth-util.c: dbus: interface=org.bluez.Device, 
path=/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00, member=PropertyChanged
D: module-console-kit.c: dbus: interface=org.bluez.Device, 
path=/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00, member=PropertyChanged
D: bluetooth-util.c: dbus: interface=org.bluez.AudioSink, 
path=/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00, member=PropertyChanged
D: module-console-kit.c: dbus: interface=org.bluez.AudioSink, 
path=/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00, member=PropertyChanged
D: bluetooth-util.c: dbus: interface=org.bluez.AudioSink, 
path=/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00, member=PropertyChanged
D: module-console-kit.c: dbus: interface=org.bluez.AudioSink, 
path=/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00, member=PropertyChanged
D: bluetooth-util.c: dbus: interface=org.bluez.Audio, 
path=/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00, member=PropertyChanged
D: module-bluetooth-discover.c: Loading module-bluetooth-device 
address="DE:AD:BE:EF:00:00" 
path="/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00"
I: module-card-restore.c: Restoring profile for card 
bluez_card.DE:AD:BA:BE:00:00.
I: card.c: Created 2 "bluez_card.DE:AD:BA:BE:00:00"
D: module-bluetooth-device.c: Connected to the bluetooth audio service
D: module-bluetooth-device.c: Sending BT_REQUEST -> BT_GET_CAPABILITIES
D: module-bluetooth-device.c: Trying to receive message from audio 
service...
D: module-bluetooth-device.c: Received BT_RESPONSE <- BT_GET_CAPABILITIES
D: module-bluetooth-device.c: Payload size is 39 6
D: module-bluetooth-device.c: Sending BT_REQUEST -> BT_GET_CAPABILITIES
D: module-bluetooth-device.c: Trying to receive message from audio 
service...
D: module-bluetooth-device.c: Received BT_RESPONSE <- BT_GET_CAPABILITIES
D: module-bluetooth-device.c: Payload size is 13 6
D: module-bluetooth-device.c: Got device capabilities
D: module-bluetooth-device.c: Sending BT_REQUEST -> BT_OPEN
D: module-bluetooth-device.c: Trying to receive message from audio 
service...
D: module-bluetooth-device.c: Received BT_RESPONSE <- BT_OPEN
D: module-bluetooth-device.c: Sending BT_REQUEST -> BT_SET_CONFIGURATION
D: module-bluetooth-device.c: Trying to receive message from audio 
service...
D: module-bluetooth-device.c: Received BT_RESPONSE <- BT_SET_CONFIGURATION
I: module-bluetooth-device.c: SBC parameters:
I: module-bluetooth-device.c:   allocation=0
I: module-bluetooth-device.c:   subbands=1
I: module-bluetooth-device.c:   blocks=3
I: module-bluetooth-device.c:   bitpool=53
D: module-bluetooth-device.c: Connection to the device configured
D: module-bluetooth-device.c: Got the stream socket
I: sink.c: Created sink 1 "bluez_sink.DE:AD:BA:BE:00:00" with sample 
spec s16le 2ch 44100Hz and channel map front-left,front-right
I: sink.c:     bluetooth.protocol = "a2dp"
I: sink.c:     device.description = "DOESNOTMATTER"
I: sink.c:     device.string = "DE:AD:BE:EF:00:00"
I: sink.c:     device.api = "bluez"
I: sink.c:     device.class = "sound"
I: sink.c:     device.bus = "bluetooth"
I: sink.c:     bluez.path = "/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00"
I: sink.c:     bluez.class = "0x3e010c"
I: sink.c:     bluez.name = "DOESNOTMATTER"
I: sink.c:     device.icon_name = "audio-card-bluetooth"
I: source.c: Created source 2 "bluez_sink.DE:AD:BA:BE:00:00.monitor" 
with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
I: source.c:     device.description = "Monitor of DOESNOTMATTER"
I: source.c:     device.class = "monitor"
I: source.c:     device.string = "DE:AD:BE:EF:00:00"
I: source.c:     device.api = "bluez"
I: source.c:     device.bus = "bluetooth"
I: source.c:     bluez.path = "/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00"
I: source.c:     bluez.class = "0x3e010c"
I: source.c:     bluez.name = "DOESNOTMATTER"
I: source.c:     device.icon_name = "audio-card-bluetooth"
D: module-bluetooth-device.c: IO Thread starting up
I: core-util.c: Successfully enabled SCHED_RR scheduling for thread, 
with priority 4, which is lower than the requested 5.
D: module-bluetooth-device.c: Sending BT_REQUEST -> BT_START_STREAM
D: module-bluetooth-device.c: Trying to receive message from audio 
service...
D: module-bluetooth-device.c: Received BT_RESPONSE <- BT_START_STREAM
D: module-bluetooth-device.c: Trying to receive message from audio 
service...
D: module-bluetooth-device.c: Received BT_RESPONSE <- BT_NEW_STREAM
D: module-bluetooth-device.c: Stream properly set up, we're ready to roll!
D: module-bluetooth-device.c: Using SBC encoder implementation: MMX
D: module-suspend-on-idle.c: Sink bluez_sink.DE:AD:BA:BE:00:00 becomes 
idle, timeout in 5 seconds.
I: module.c: Loaded "module-bluetooth-device" (index: #18; argument: 
"address="DE:AD:BE:EF:00:00" 
path="/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00"").
D: module-console-kit.c: dbus: interface=org.bluez.Audio, 
path=/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00, member=PropertyChanged
D: bluetooth-util.c: dbus: interface=org.bluez.AudioSink, 
path=/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00, member=PropertyChanged
D: module-console-kit.c: dbus: interface=org.bluez.AudioSink, 
path=/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00, member=PropertyChanged
D: module-bluetooth-device.c: dbus: interface=org.bluez.AudioSink, 
path=/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00, member=PropertyChanged
D: bluetooth-util.c: dbus: interface=org.bluez.AudioSink, 
path=/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00, member=PropertyChanged
D: module-console-kit.c: dbus: interface=org.bluez.AudioSink, 
path=/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00, member=PropertyChanged
D: module-bluetooth-device.c: dbus: interface=org.bluez.AudioSink, 
path=/org/bluez/1670/hci0/dev_DE:AD:BA:BE:00:00, member=PropertyChanged

What bothers me is that I have a second computer with the same 
configuration which is working right (a2dp is automatically selected 
when pulseaudio is started).

Any help would be greatly apreciated.

$ uname -a
Linux debian 2.6.32-5-amd64 #1 SMP Mon Jan 16 16:22:28 UTC 2012 x86_64 
GNU/Linux

$ dpkg -l | grep pulse
ii  libpulse0                           0.9.21-3+squeeze1            
PulseAudio client libraries
ii  pulseaudio                          0.9.21-3+squeeze1            
PulseAudio sound server
ii  pulseaudio-module-bluetooth         0.9.21-3+squeeze1            
Bluetooth module for PulseAudio sound server

$ dpkg -l | grep bluez
ii  bluez                               4.66-3                       
Bluetooth tools and daemons

Erwan Martin.



More information about the pulseaudio-discuss mailing list