2008-01-05 14:31:24

by 1

[permalink] [raw]
Subject: [Bluez-users] Possible insignificant bug in pcm_bluetooth.c (bluez-utils)

Hello,
here is question raised while digging thru bluez-utils source.
Piece from /audio/pcm_bluetooth.c (function bluetooth_parse_config) :

if (strcmp(id, "mode") == 0) {
if (snd_config_get_string(n, &mode) < 0) {
SNDERR("Invalid type for %s", id);
return -EINVAL;
}

if (strcmp(pref, "auto") == 0) {
bt_config->channel_mode = BT_A2DP_CHANNEL_MODE_AUTO;
bt_config->has_channel_mode = 1;
} else if (strcmp(pref, "mono") == 0) {
bt_config->channel_mode = BT_A2DP_CHANNEL_MODE_MONO;
bt_config->has_channel_mode = 1;
} else if (strcmp(pref, "dual") == 0) {
bt_config->channel_mode = BT_A2DP_CHANNEL_MODE_DUAL_CHANNEL;
bt_config->has_channel_mode = 1;
} else if (strcmp(pref, "stereo") == 0) {
bt_config->channel_mode = BT_A2DP_CHANNEL_MODE_STEREO;
bt_config->has_channel_mode = 1;
} else if (strcmp(pref, "joint") == 0) {
bt_config->channel_mode = BT_A2DP_CHANNEL_MODE_JOINT_STEREO;
bt_config->has_channel_mode = 1;
}
continue;
}

if (strcmp(id, "allocation") == 0) {
if (snd_config_get_string(n, &allocation) < 0) {
SNDERR("Invalid type for %s", id);
return -EINVAL;
}

if (strcmp(pref, "auto") == 0) {
bt_config->allocation_method = BT_A2DP_ALLOCATION_AUTO;
bt_config->has_allocation_method = 1;
} else if (strcmp(pref, "loudness") == 0) {
bt_config->allocation_method = BT_A2DP_ALLOCATION_LOUDNESS;
bt_config->has_allocation_method = 1;
} else if (strcmp(pref, "snr") == 0) {
bt_config->allocation_method = BT_A2DP_ALLOCATION_SNR;
bt_config->has_allocation_method = 1;
}
continue;
}

As I understood, bt_config->channel_mode and
bt_config->allocation_method will never be set properly, because of
wrong variable in strcmp : strcmp(pref,"auto").
If I am right, there must be strcmp(mode,"auto") and
strcmp(allocation,"auto") respectively.

Further, if it is bug, it is insignificant for now the configuration of
A2DP (~/.asoundrc) is not fully implemented.
Found this in above file:
/* FIXME: this needs to be really implemented (take into account
real asoundrc settings + ALSA hw settings ) once server side sends us
more than one possible configuration */

And something else: I got choppy sound (it chops every 2 sec) when
listening my A2DP stereo headset Southwing SA505 (BT dongle ASUS WL-BTD-202,
Ubuntu Gutsy, bluez-3.24). Tried to:
- change configuration in ~/.asoundrc but unfortunately settings for
A2DP unimplemented .
- changed hcid.conf -> lm accept,master and removed lp rswitch. with no use
Anybody knows what can it be?

Now waiting for new release in hope that A2DP settings will be
implemented :)


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users


2008-01-05 14:57:54

by Brad Midgley

[permalink] [raw]
Subject: Re: [Bluez-users] Possible insignificant bug in pcm_bluetooth.c (bluez-utils)

Hi

> As I understood, bt_config->channel_mode and
> bt_config->allocation_method will never be set properly

I changed this in cvs. Send a unified diff next time... it's quicker
to figure out what you've found.

> Further, if it is bug, it is insignificant for now the configuration of
> A2DP (~/.asoundrc) is not fully implemented.
> Found this in above file:
> /* FIXME: this needs to be really implemented (take into account
> real asoundrc settings + ALSA hw settings ) once server side sends us
> more than one possible configuration */

yeah I'm not sure what the status is on this piece.

> And something else: I got choppy sound (it chops every 2 sec) when
> listening my A2DP stereo headset Southwing SA505 (BT dongle ASUS WL-BTD-202,
> Ubuntu Gutsy, bluez-3.24). Tried to:
> - change configuration in ~/.asoundrc but unfortunately settings for
> A2DP unimplemented .
> - changed hcid.conf -> lm accept,master and removed lp rswitch. with no use
> Anybody knows what can it be?

the other hcid.conf suggestion is to remove sniff from lp. Do you have
any other bt devices that you use? Is hcitool con only showing the
a2dp connection?

--
Brad

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Bluez-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bluez-users