Skip to contentSkip to conversation

possible sbc codec bug with audio glitches

DISCUSSION Jelle de Jong 2 participants 5 messages Nov 16, 2008 – Nov 20, 2008 Bluetooth drivers

lore
Share & tools
lore
#0 lore raw

Hello everybody,

At celinux 2008 this month I talked to Marcel Holtmann and showed him some issues I encountered with bluez.

One of my bigger issues is that I got audio glitches when listing to high quality audio (dvds) with an sensitive DJ bluetooth headset.

I let Marcel listen to the problem and he also hears them and things it may be something with the SBC codec. But since Marcel is no expert on the SBC codec part, we would like to ask for the help of others to solve this issue.

The glitches/distortions can be heard on a Motorola Bluetooth S805 stereo headset and listing to a dvd audio for example intro music of Stargate Atlantis.

The strange thing is that I can only hear the glitches on the right side of the headset.

I reported my first encounter with the issue on may 2008:
http://sourceforge.net/mailarchive/message.php?msg_name=4819B1A7.2070702%40powercraft.nl

I hope somebody would be willing/able to help out. I have seen some very nice post about the bad performance of the SBC codec, and I hope you guys can also have a look at this.

Best regards,

Jelle

#1 lore raw

Jelle

Quoted 2 lines

The strange thing is that I can only hear the glitches on the right side of the headset.

That is very strange it is only on one side. Do you know if you were you using the joint stereo setting in the codec?

Signature · 1 line
Brad Midgley
#2 lore raw
Quoted 8 lines · Brad Midgley

Jelle

Quoted 2 lines

The strange thing is that I can only hear the glitches on the right side of the headset.

That is very strange it is only on one side. Do you know if you were you using the joint stereo setting in the codec?

Thank you Brad for taking the time to read and answer to my question, this is really appreciated. I dont exactly know what you mean with joint stereo settings in the code?

I use the bluez git build on 2008-11-06. The only info I got is from the bluetoothd running in debug mode, please see the attachment for more information.

I hope the below section is the most relevant?

config a2dp - device = 00:0C:55:D1:C9:78 access_mode = 2 codec sbc - frequency = 1 channel_mode = 1 allocation = 1 subbands = 1 blocks = 1 bitpool = 44
a2dp_source_config: selected SEP 0xb81b1020 avdtp_ref(0xb81acbf0): ref=3
setup_ref(0xb81b62a8): ref=1 avdtp_set_configuration(0xb81acbf0): int_seid=1, acp_seid=1

Thanks in advance,

Jelle

#3 lore raw

Jelle,

Everything in the codec is symmetrical between the two channels unless using joint stereo mode. In joint stereo, if it saves space, we encode the difference between and the sum of the channels instead of the individual channel content. It's conceivable that an overflow here might be manifest differently between the two channels.

It looks like you can use a parameter "mode" in the alsa config and set it to either "stereo" or "joint"

If you can narrow down the distortion to one of these cases that would be handy.

Do you have an mp3 I could try to hear the problem?

Brad

Quoted 32 lines · Jelle de Jong
Quoted 8 lines · Brad Midgley

Jelle

Quoted 2 lines

The strange thing is that I can only hear the glitches on the right side of the headset.

That is very strange it is only on one side. Do you know if you were you using the joint stereo setting in the codec?

Thank you Brad for taking the time to read and answer to my question, this is really appreciated. I dont exactly know what you mean with joint stereo settings in the code?

I use the bluez git build on 2008-11-06. The only info I got is from the bluetoothd running in debug mode, please see the attachment for more information.

I hope the below section is the most relevant?

config a2dp - device = 00:0C:55:D1:C9:78 access_mode = 2 codec sbc - frequency = 1 channel_mode = 1 allocation = 1 subbands = 1 blocks = 1 bitpool = 44
a2dp_source_config: selected SEP 0xb81b1020 avdtp_ref(0xb81acbf0): ref=3
setup_ref(0xb81b62a8): ref=1 avdtp_set_configuration(0xb81acbf0): int_seid=1, acp_seid=1

Thanks in advance,

Jelle

Signature · 4 lines
Brad Midgley
Senior Architect
Surgeworks
801-272-9800
#4 lore raw
Quoted 8 lines · Brad Midgley

Jelle,

Everything in the codec is symmetrical between the two channels unless using joint stereo mode. In joint stereo, if it saves space, we encode the difference between and the sum of the channels instead of the individual channel content. It's conceivable that an overflow here might be manifest differently between the two channels.

Quoted 8 lines

It looks like you can use a parameter "mode" in the alsa config and set it to either "stereo" or "joint"

If you can narrow down the distortion to one of these cases that would be handy.

Do you have an mp3 I could try to hear the problem?

Brad

Thank you Brad for taking the time to answer.

I have tried the mode joint and mode stereo [1] for a few days but I cant hear any difference and the small glitches are still there.

I posted a small audio segment that has the problem in my first post:
http://sourceforge.net/mailarchive/message.php?msg_name=4819B1A7.2070702%40powercraft.nl
http://filebin.ca/pugrs/glitch.wav

Thanks in advance,

Jelle

Quoted 31 lines
Quoted 29 lines · Jelle de Jong
Quoted 7 lines · Brad Midgley

Jelle

Quoted 2 lines

The strange thing is that I can only hear the glitches on the right side of the headset.

That is very strange it is only on one side. Do you know if you were you using the joint stereo setting in the codec?

Thank you Brad for taking the time to read and answer to my question, this is really appreciated. I dont exactly know what you mean with joint stereo settings in the code?

I use the bluez git build on 2008-11-06. The only info I got is from the bluetoothd running in debug mode, please see the attachment for more information.

I hope the below section is the most relevant?

config a2dp - device = 00:0C:55:D1:C9:78 access_mode = 2 codec sbc - frequency = 1 channel_mode = 1 allocation = 1 subbands = 1 blocks = 1 bitpool = 44
a2dp_source_config: selected SEP 0xb81b1020 avdtp_ref(0xb81acbf0): ref=3
setup_ref(0xb81b62a8): ref=1 avdtp_set_configuration(0xb81acbf0): int_seid=1, acp_seid=1

Thanks in advance,

Jelle