[pulseaudio-discuss] PulseAudio+Bluez acting as Bluetooth stereo headset - no sound yet

Burkhard Stubert burkhard.stubert at googlemail.com
Sat Jan 2 10:53:11 PST 2010


Hi Tanu,

Thanks for the detailed analysis and for pointing out the reincarnation of
the pulseaudio process. In the meantime, I succeeded in running scenario
with pulseaudio v0.9.21. The result is exactly the same. It fails on the
same assertion, pulseaudio dies and restarts after about 30 seconds. It
looks very much like a bug report.

I had a closer look at the log just before the failed assertion (some lines
before tag ###1). Pulseaudio tells bluetoothd to set the configuration as
follows:

Dec 31 16:01:11 beee pulseaudio[1518]: module-bluetooth-device.c: Sending
BT_REQUEST -> BT_SET_CONFIGURATION
Dec 31 16:01:11 beee pulseaudio[1518]: module-bluetooth-device.c: Trying to
receive message from audio service...
Dec 31 16:01:11 beee bluetoothd[956]: Audio API: BT_REQUEST <-
BT_SET_CONFIGURATION
Dec 31 16:01:11 beee bluetoothd[956]: Media Codec: SBC Channel Modes:
JointStereo Frequencies: 48Khz * Subbands: 8  Blocks: 16*  Bitpool: 2-51

Immediately before tag ###1, pulseaudio shows the configuration it has
actually set:
Dec 31 16:01:11 beee pulseaudio[1518]: module-bluetooth-device.c: SBC
parameters:
Dec 31 16:01:11 beee bluetoothd[956]: setup_free(0x2a8f010)
Dec 31 16:01:11 beee pulseaudio[1518]: module-bluetooth-device.c:
#011allocation=0
Dec 31 16:01:11 beee bluetoothd[956]: avdtp_unref(0x2a84940): ref=3
Dec 31 16:01:11 beee pulseaudio[1518]: module-bluetooth-device.c: #011*
subbands=1*
Dec 31 16:01:11 beee pulseaudio[1518]: module-bluetooth-device.c: #011*
blocks=3*
Dec 31 16:01:11 beee pulseaudio[1518]: module-bluetooth-device.c:
#011bitpool=51
Dec 31 16:01:11 beee pulseaudio[1518]: module-bluetooth-device.c: Connection
to the device configured
Dec 31 16:01:11 beee pulseaudio[1518]: module-bluetooth-device.c: Got the
stream socket

This looks very suspicious to me. Bluetoothd sends "8 subbands" and "16
blocks" back to pulseaudio, but pulseaudio receives "1 subband" and "3
blocks". That looks wrong, doesn't it?

Thanks,
Burkhard




2010/1/2 Tanu Kaskinen <tanuk at iki.fi>

> pe, 2010-01-01 kello 16:02 +0100, Burkhard Stubert kirjoitti:
> > Hi chaps,
> >
> > A happy new year to you all.
> >
> > I want to turn my Ubuntu-Karmic-based eee-PC into a Bluetooth stereo
> > headset (eventually, the eee will be replaced by a car infotainment
> > system). The eee connects via Bluetooth to a mobile phone, which acts
> > as an audio source for the eee. The music played on the mobile is
> > transported via Bluetooth to the eee and comes out of the eee's
> > speakers. That's the theory. In practise, the streaming stops after
> > 3-5 seconds and there is no sound any way.
> >
> > From the syslog messages (see attachment playmusic3.syslog), I see the
> > following:
> >       * At tag "###1", pulseaudio has successfully created an audio
> >         source "bluez_source.00_25_48_F5_D8_15".
> >       * At tag "###2", the audio stream seems to be set up correctly.
> >         The message is "module-bluetooth-device.c: Stream properly set
> >         up, we're ready to roll!".
> >       * At tag "###3", there are some problems setting rlimit's. I
> >         guess because pulseaudio runs in a per-user session and does
> >         not have the access privileges to change the rlimit's. I
> >         assume that the problem isn't really important.
>
> Correctly assumed.
>
> >       * From tag "###4" to tag "###5", pulseaudio tells alsa-mixer to
> >         look at profiles. It actually finds three supported profiles:
> >         ###4a - output:analog-stereo, ###4b - output:analog-stereo
> >         +input:analog-stereo, ###4c - input:analog-stereo. Question:
> >         What are these ALSA profiles used for?
>
> They are for switching the mode in which the sound card is used. Your
> card can be used in three modes: analog stereo out, analog stereo in,
> and a combination of them. There could be more on some other sound card;
> I think the main motivation for the profiles came from the desire to
> switch between stereo and surround modes.
>
> >       * At tag "###6", things seem to go wrong with the message
> >         "alsa-mixer.c: Unable to attach to mixer front:0: No such file
> >         or directory". But maybe this problem can be ignored, because
> >         the next line says "alsa-mixer.c: Successfully attached to
> >         mixer 'hw:0'".
>
> Yes, it can be ignored. The alsa mixer apparently can't be opened using
> the "front" device. I'm not sure if this is a bug in the driver, but we
> can use "hw" as well.
>
> >       * At tag "###7", pulseaudio seems to fall back to some default
> >         sinks and sources (module-device-restore.c comes into play).
> >         That doesn't look good. Question: What's going wrong here?
>
> Nothing is wrong. When sinks and sources are loaded,
> module-device-restore restores them to the same state that they had when
> pulseaudio was previously running.
>
> >       * At tag "###8", things start to repeat and it is the same steps
> >         and message as from tag "###1".
> > Any ideas what is going wrong in my setup?
>
> There are crashes, so apparently nothing is wrong in the setup. The a2dp
> source is just buggy. Here are notes about each pulseaudio pid change:
>
> The log sample starts with some bluetooth activity, apparently the a2dp
> source is being loaded. Pulseaudio has pid 1518.
>
> After ###2 the bluetooth device module fails an assertion:
>
>    Dec 31 16:01:11 beee pulseaudio[1518]: module-bluetooth-device.c:
> Assertion '(size_t) decoded == a2dp->frame_length' failed at
> modules/bluetooth/module-bluetooth-device.c:1367, function
> a2dp_process_push(). Aborting.
>
> A new pulseaudio process is spawned with pid 1772.
>
> Here's a mystery:
>
>    Dec 31 16:01:12 beee pulseaudio[1772]: card.c: Created 1
> "bluez_card.00_25_48_F5_D8_15"
>    Dec 31 16:01:43 beee pulseaudio[2030]: module-bluetooth-device.c:
> Connected to the bluetooth audio service
>
> What's happening here? During 31 seconds pulseaudio pid changes from
> 1772 to 2030, but nothing is logged during this change. Then the same
> assertion failure occurs again:
>
>    Dec 31 16:01:43 beee pulseaudio[2030]: module-bluetooth-device.c:
> Assertion '(size_t) decoded == a2dp->frame_length' failed at
> modules/bluetooth/module-bluetooth-device.c:1367, function
> a2dp_process_push(). Aborting.
>
> After that a new pulseaudio instance is spawned with pid 2060. That
> stays running until the end of the log sample.
>
> You seem to be running pulseaudio 0.9.19. There were some bluetooth
> fixes in 0.9.20; I recommend updating to 0.9.21. If the bugs are still
> there, file a new ticket.
>
> --
> Tanu Kaskinen
>
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at mail.0pointer.de
> https://tango.0pointer.de/mailman/listinfo/pulseaudio-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20100102/ff7f63bb/attachment.htm>


More information about the pulseaudio-discuss mailing list