[MDA III, XDA III, PDA2k, 9090 ROM Development] seidler2547:
Hi all,

after I've spent hours and hours of trial&error trying to get my BA to have A2DP, here's what I've found out:

1. Problem

My BA (tried all WM5 & WM6 ROMs) has always had the skipping problem, but much worse than it is usually described. Usually people say it skips a bit every some seconds, but with mine it was like 1/3rd of a second music, 2/3rds no music and so on.

I eventually found out that with the BitPool setting set to 20, the skipping was down to "normal" level, at least one could identify the piece of music that was played. Anyway, you'll see that BitPool=20 is not exactly pushing sounds to your headset that the word "quality" can describe in any way.

2. WIDCOMM stack

Then I tried the WIDCOMM/BroadCom stack posted by helmi_c here. That one actually delivered great A2DP quality, but has a major problem: HeadSet/HandsFree just doesn't work. I've tried every patch out there, even flashed back to WM2003SE, but to no avail. I guess the people who developed the stack just never got around to capture the phone "start call"/"end call" events. Although there an option that the headset profile always stays connected. Here are the reg settings:

[HKEY_LOCAL_MACHINE\Software\WIDCOMM\Plugin\HandsFree]

"AudioSetupDll"

Here, I tried "MkSpk_PCM_Routing.dll", "HTC_PCM_Routing.dll" and "SD_PCM_Routing.dll", there wasn't any difference between them. Don't waste your time.

"AudioPreferences"

Pretty simple: 1 = Handle phone calls in the headset, 2 = Handle all audio in the headset. 3 = both. Can't remember that 2 ever worked as it should have.

"AudioHandling"

Now this is a bit more difficult.

I know that 16 means that the option "Handle all audio to the headset" is enabled and thus shown in the Advanced preferences for any (mono) headset.

Value 1 means the headset icon (which looks like old-fashioned headphones and appears in the top bar, not only in the phone app) is enabled. I can't remember now if that also meant that the connection between the PPC and the headset is kept in an idling state or if value 8 was good for that.

Anyway, if AudioPreferences is set so that the connection to the headset is always connected (constant, silent noise in the headset), then you can actually hear the phone calls in the headset and speak through it. But the audio still stays in the device too, which means both speaker and microphone of the PPC are active, too. Annoying, to say the least.

3. Solution with MS Stack

Eventually, I couldn't stand using a BT headset for music but then having to grab the Blue Angel by hand when a phone call came in, so I decided to go back to the MS stack. And then, after hours of searching and flashing (even copied files from other ROMs and cooked my own ROMs), a great fortune find came my way. I had set the btuart flags to 4 (just to see if it would make any difference) and then I found this MSDN article, which is only available in Japanese (could someone translate?), but it gave me enough information to add this value:

[HKEY_LOCAL_MACHINE\Software\Microsoft\Bluetooth\device]
"DefaultMtu"=dword:800

And alas, it worked! I got a fine stream of HQ A2DP to my headset! Now I'm down to "normal" skipping, which I yet have to fix (don't know if I ever will), but at least it's not as crappy "quality" as it has been.

Summary

If you have extreme skipping with A2DP, these settings might help:

[HKEY_LOCAL_MACHINE\Software\Microsoft\Bluetooth\device]
"DefaultMtu"=dword:800
[HKEY_LOCAL_MACHINE\Software\Microsoft\Bluetooth\Transports\BuiltIn\3]
"flags"=dword:4 (or 5)

Then reboot.

Now there is only one problem left (and I'm inclined to see it as a problem of the crappy no-name headset I've got): from time to time (sometimes after 10sec, sometimes after 10min) the headset suddenly plays white noise instead of the music. Whenever I push either the forward or backward button, the music continues normally (so I currently use TCPMP because it does not support AVRCP). Has anyone else had this problem? The noise is very disturbing, because it is much louder than the music (I can still change the volume of the noise with the volume control buttons). I'm not sure if it is the SBC codec of WM5/6, possible causes could be:

1. SBC codec messes up and is reinitialized upon the AVRCP message

2. SBC codec/A2DP/AVDTP sends a packet or encoding that is unsupported by my headset and the headset reinitializes when you push a button

3. headset somehow looses track of the BT encryption and cannot decode the music anymore (although I think I had disabled the encryption and it didn't go away)

Regards,

Stefan