[pulseaudio-discuss] Bluetooth Headset Problem with BlueZ-5.38 and Pulseaudio 8.0

Hieu Le hieu.le at veriksystems.com
Mon Aug 22 09:08:14 UTC 2016


Hello,
Sorry to bring this up again. However, I cannot use pulseaudio 8.0 +
bluez5.38 to record audio from my Bluetooth's microphone.

- I followed the patch from link below to apply it on top of my embedded's
board which is running 3.14 Linux kernel:
https://lists.freedesktop.org/archives/pulseaudio-discuss/2015-March/023305.html

I can successfully switch to headset_head_unit (HSP) profile. Below is the
output of sinks|sources and how I choose Bluetooth's microphone as the
default audio source:

# *pactl list sources short*
*0       alsa_output.0.analog-stereo.monitor     module-alsa-sink.c
 s16le 2ch 44100Hz       IDLE*
*1       alsa_input.0.analog-stereo      module-alsa-source.c    s16le 2ch
44100Hz       IDLE*
*2       bluez_sink.00_1F_81_34_08_22.monitor    module-bluez5-device.c
 s16le 1ch 8000Hz        IDLE*
*3       bluez_source.00_1F_81_34_08_22  module-bluez5-device.c  s16le 1ch
8000Hz        IDLE*

# *pactl list sinks short*
*0       alsa_output.0.analog-stereo     module-alsa-sink.c      s16le 2ch
44100Hz       IDLE*
*1       bluez_sink.00_1F_81_34_08_22    module-bluez5-device.c  s16le 1ch
8000Hz        IDLE*


*# pacmd set-default-source 3*

Using parecord to capture audio from Bluetooth's microphone:
# *parecord -v -r --channels=1 --file-format=wav
--device=bluez_source.00_1F_81_34_08_22 mm.wav*

*Opening a recording stream with sample specification 's16le 1ch 44100Hz'
and channel map 'mono'.*
*Connection established.*
*Stream successfully created.*
*Buffer metrics: maxlength=4194304, fragsize=176400*
*Using sample spec 's16le 1ch 44100Hz', channel map 'mono'.*
*Connected to device bluez_source.00_1F_81_34_08_22 (index: 3, suspended:
no).*
*Time: 0.026 sec; Latency: 25844 usec.*

=> In my case, the result is a mm.wav of zero bytes no matter how long I
record.

The output from pulseaudio's log is:
*I: [pulseaudio] client.c: Created 10 "Native client (UNIX socket client)"*
*D: [pulseaudio] protocol-native.c: Protocol version: remote 30, local 30
I: [pulseaudio] protocol-native.c: Got credentials: uid=0 gid=0 success=1
D: [pulseaudio] protocol-native.c: SHM possible: yes D: [pulseaudio]
protocol-native.c: Negotiated SHM: yes D: [pulseaudio] srbchannel.c: SHM
block is 4056 bytes, ringbuffer capacity is 2 * 2004 bytes D: [pulseaudio]
protocol-native.c: Enabling srbchannel... D: [pulseaudio]
module-augment-properties.c: Looking for .desktop file for parecord D:
[pulseaudio] protocol-native.c: Client enabled srbchannel. D: [pulseaudio]
module-stream-restore.c: Not restoring device for stream
source-output-by-application-name:parecord, because already set D:
[pulseaudio] module-intended-roles.c: Not setting device for stream mm.wav,
because already set. D: [pulseaudio] source-output.c: Negotiated format:
pcm, format.sample_format = "\"s16le\"" format.rate = "44100"
format.channels = "1" format.channel_map = "\"mono\"" I: [pulseaudio]
source-output.c: Trying to change sample rate I: [pulseaudio] resampler.c:
Speex appears to be compiled with --enable-fixed-point. Switching to a
fixed-point resampler because it should be faster. D: [pulseaudio]
resampler.c: Resampler: D: [pulseaudio] resampler.c: rate 8000 -> 44100
(method speex-fixed-1) D: [pulseaudio] resampler.c: format s16le -> s16le
(intermediate s16le) D: [pulseaudio] resampler.c: channels 1 -> 1
(resampling 1) I: [pulseaudio] speex.c: Choosing speex quality setting 1.
D: [pulseaudio] memblockq.c: memblockq requested: maxlength=33554432,
tlength=0, base=2, prebuf=0, minreq=1 maxrewind=0 D: [pulseaudio]
memblockq.c: memblockq sanitized: maxlength=33554432, tlength=33554432,
base=2, prebuf=0, minreq=2 maxrewind=0 I: [pulseaudio] source-output.c:
Created output 3 "mm.wav" on bluez_source.00_1F_81_34_08_22 with sample
spec s16le 1ch 44100Hz and channel map mono I: [pulseaudio]
source-output.c: media.format = "WAV (Microsoft)" I: [pulseaudio]
source-output.c: application.name <http://application.name> = "parecord" I:
[pulseaudio] source-output.c: media.name <http://media.name> = "mm.wav" I:
[pulseaudio] source-output.c: native-protocol.peer = "UNIX socket client"
I: [pulseaudio] source-output.c: native-protocol.version = "30" I:
[pulseaudio] source-output.c: application.process.id
<http://application.process.id> = "1930" I: [pulseaudio] source-output.c:
application.process.user = "root" I: [pulseaudio] source-output.c:
application.process.host = "OpenWrt" I: [pulseaudio] source-output.c:
application.process.binary = "parecord" I: [pulseaudio] source-output.c:
application.language = "C" I: [pulseaudio] source-output.c:
application.process.machine_id = "fbf61ebdc6bd1c95cd6a1de257baaee6" I:
[pulseaudio] source-output.c: module-stream-restore.id
<http://module-stream-restore.id> =
"source-output-by-application-name:parecord" D: [pulseaudio] memblockq.c:
memblockq requested: maxlength=4194304, tlength=0, base=2, prebuf=1,
minreq=0 maxrewind=0 D: [pulseaudio] memblockq.c: memblockq sanitized:
maxlength=4194304, tlength=4194304, base=2, prebuf=2, minreq=2 maxrewind=0
I: [pulseaudio] protocol-native.c: Final latency 2000.00 ms = 2000.00 ms +
0.00 ms D: [pulseaudio] core.c: Hmm, no streams around, trying to vacuum.
I: [pulseaudio] source-output.c: Freeing output 3 "mm.wav" I: [pulseaudio]
client.c: Freed 10 "parecord" I: [pulseaudio] protocol-native.c: Connection
died.*

It would be great if you can give my any advice or suggestion.

Regards,
Hieu Le.


On Mon, Aug 22, 2016 at 10:14 AM, Hieu Le <hieu.le at veriksystems.com> wrote:

> Thanks for your information. Let me try to backport from 3.18.
>
> Regards,
> Hieu Le.
>
> On Sat, Aug 20, 2016 at 7:32 PM, Tanu Kaskinen <tanuk at iki.fi> wrote:
>
>> On Sat, 2016-08-20 at 14:14 +0200, Georg Chini wrote:
>> > On 20.08.2016 13:40, Tanu Kaskinen wrote:
>> > >
>> > > On Fri, 2016-08-19 at 13:57 +0700, Hieu Le wrote:
>> > > >
>> > > > I'm trying to get a SPK-ProHT Bluetooth speaker and headset working
>> on an
>> > > > embedded Linux board but when I failed to use pacmd
>> set-card-profile to
>> > > > choose headset_head_unit profile. Checking pulseaudio lof file, it
>> seems
>> > > > backend-native cannot connect to SCO socket. Sorry this is a very
>> long mail
>> > > > due to debug logs attached
>> > > The problem seems to be that connect() fails with "Protocol not
>> > > supported". This problem has been reported a few times, but I don't
>> > > know how to fix it. It seems like missing functionality in the kernel,
>> > > so my guess is that you're missing some bluetooth related driver. If
>> > > you get it working somehow, please report back how you did it.
>> > >
>> > > The bluez mailing list might be able to help better.
>> > >
>> > Hi,
>> >
>> > I remember there was a kernel problem which prevented some
>> > headsets from working. The bug was introduced in 3.12 and was
>> > fixed in 3.18.
>> > See also
>> > https://lists.freedesktop.org/archives/pulseaudio-discuss/20
>> 15-March/023298.html
>>
>> Thanks! I added this bit of information here:
>> https://www.freedesktop.org/wiki/Software/PulseAudio/Documen
>> tation/User/Bluetooth/
>>
>> --
>> Tanu
>> _______________________________________________
>> pulseaudio-discuss mailing list
>> pulseaudio-discuss at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
>>
>
>
>
> --
> ---- Hieu Le ---
>



-- 
---- Hieu Le ---
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20160822/e7bae0d5/attachment-0001.html>


More information about the pulseaudio-discuss mailing list