maemo.org Bugzilla – Bug 667
A2DP and AVRCP Bluetooth profile wanted
Last modified: 2009-12-11 03:39:34 UTC
You need to log in before you can comment on or make changes to this bug.
I think it should be included in the OS itself, but if it just gets to the audio/videoplayer, fine... A2DP is the stereo sound profile, and the AVRCP is the remote control profile so you can control your 770 in the pocket with play/pause etc, which is included on most A2DP headset today.
Thanks, will be handled as a feature request.
Picking this one to see if it ends up in http://maemo.org/intro/roadmap.html either in the roadmap or at least in wishlist. Please provide any additional details or ideas you might have since you filed this enhancement request. Thanks!
While the feature is not officially supported, it would be useful for (power) users to know about how to make A2DP work. Is this page summarizing the steps and pages about this topic? http://1976th.com/bluetooth/2007/n800-simplified-instructions-for-adding-bluetooth-a2dp/ Perhaps someone here would like to go ahead and create a wiki page. In the meantime I'll do my part of the homework.
I wanted to let people know that there is a new A2DP, which has not been packaged for the n800 yet. I believe that it is now packaged with bluez: http://wiki.bluez.org/wiki/Audio I think that if Nokia is going to move forward with this issue, then they should do it using the current packages. This audio section also includes the headset profiles, which would take care of that feature request also.
Don't worry, we (Nokia) are aware of this development in BlueZ and have actually been responsible for the most part of it. I just tested an unmodified bluez-utils-3.15 on a N800 and A2DP worked just fine. I used mpg123 and the CPU usage was about 20% (which includes mp3 decoding, rate changing to 48kHz and SBC encoding, from which the decoding will be moved to DSP in the future and rate changing wont be neded). I'll push the packages to sardine soon.
https://garage.maemo.org/tracker/index.php?func=detail&aid=1438&group_id=164&atid=681
Johan, has there been any progress on A2DP on IT2008? We haven't heard anything about it since your last comment.
(In reply to comment #7) > Johan, has there been any progress on A2DP on IT2008? We haven't heard anything > about it since your last comment. The audio service and alsa plugin supporting A2DP ships with IT2008, however by default support for it is disabled (you need to comment out a line in /etc/bluetooth/audio.conf to enable it). The main reason why it's disabled is that there are several places in the system that are not ready to support it yet (mostly the DSP from where we'd need to get raw audio out after it has mixed it from various sources (system souds, media player music, etc). However, you should be able to get it working for specific 3rd party apps by editing audio.conf, creating a .asoundrc file and making sure your music player uses the alsa device specified in .asoundrc. E.g. I've tested it successfully using alsaplayer both on N800 and N810 HW. As for sardine, I did the necessary changes to sardine.packages last week but I'm not sure a package has been built yet since it seemed that libhal-dev wasn't available for some reason.
Why a2dp and avrcp works with n810 and not with n800?
(In reply to comment #9) > Why a2dp and avrcp works with n810 and not with n800? It's a little difficult to answer that question since I've seen it work on both devices :)
Ok, I've just been able to get A2DP working with latest IT2008 image, after some fight with the system. Here is the howto : -first, ensure you have your headset working with IT2008 ie bluetooth pairing done and if you enable enabled, you get sound (crappy but you get it ;) -as root, edit /etc/bluetooth/audio.conf and change Disable=Sink into #Disable=Sink (it would be nice for next nokia image to enable Sink by default, even if there is no UI to use it in a "supported by Nokia way" so it wouldn't require any root privilege to hack around A2DP support -as user, create ~/.asoundrc and put into it : pcm.bluetooth { type bluetooth } ctl.bluetooth{ type bluetooth } -as a user, create a file bt.sh with the following content (be sure to set HEADSET_ADDRESS with your headset BT address : #!/bin/sh HEADSET_ADDRESS="aa:bb:cc:dd:ee:ff" MANAGER=`dbus-send --system --print-reply --dest=org.bluez /org/bluez org.bluez.Manager.ActivateService string:audio | grep string | sed -e 's/.* string //g' -e 's/"//g' ` DEVICE=`dbus-send --system --type=method_call --print-reply --dest="$MANAGER" /org/bluez/audio org.bluez.audio.Manager.CreateDevice string:"$HEADSET_ADDRESS" | grep string | sed -e 's/.* string //g' -e 's/"//g' ` dbus-send --system --type=method_call --print-reply --dest="$MANAGER" "$DEVICE" org.bluez.audio.Sink.Connect -chmod +x this file -run this file at each startup so A2DP sink is configured and enabled for your headset now, to play sound, use mplayer as following : mplayer -ao alsa:device=bluetooth your_file_to_play and enjoy quality music ;) There is some buffer underrun during playback, but it is a good start.
(In reply to comment #11) > Ok, I've just been able to get A2DP working with latest IT2008 image, after > some fight with the system. > > Here is the howto : > -first, ensure you have your headset working with IT2008 ie bluetooth pairing > done and if you enable enabled, you get sound (crappy but you get it ;) > -as root, edit /etc/bluetooth/audio.conf and change > Disable=Sink > into > #Disable=Sink > > (it would be nice for next nokia image to enable Sink by default, even if there > is no UI to use it in a "supported by Nokia way" so it wouldn't require any > root privilege to hack around A2DP support > > -as user, create ~/.asoundrc and put into it : > pcm.bluetooth { > type bluetooth > } > > ctl.bluetooth{ > type bluetooth > } > > -as a user, create a file bt.sh with the following content (be sure to set > HEADSET_ADDRESS with your headset BT address : > #!/bin/sh > HEADSET_ADDRESS="aa:bb:cc:dd:ee:ff" > > MANAGER=`dbus-send --system --print-reply --dest=org.bluez /org/bluez > org.bluez.Manager.ActivateService string:audio | grep string | sed -e 's/.* > string //g' -e 's/"//g' ` > > DEVICE=`dbus-send --system --type=method_call --print-reply --dest="$MANAGER" > /org/bluez/audio org.bluez.audio.Manager.CreateDevice string:"$HEADSET_ADDRESS" > | grep string | sed -e 's/.* string //g' -e 's/"//g' ` > > dbus-send --system --type=method_call --print-reply --dest="$MANAGER" > "$DEVICE" org.bluez.audio.Sink.Connect > > -chmod +x this file > -run this file at each startup so A2DP sink is configured and enabled for your > headset > > now, to play sound, use mplayer as following : > mplayer -ao alsa:device=bluetooth your_file_to_play > > and enjoy quality music ;) > > There is some buffer underrun during playback, but it is a good start. > I tried this... But.. the result then i run bt.sh looks like this: Nokia-N810-51-3:/home/user# ./bt.sh Usage: dbus-send [--help] [--system | --session] [--dest=NAME] [--type=TYPE] [-- print-reply=(literal)] [--reply-timeout=MSEC] <destination object path> <message name> [contents ...] ./bt.sh: line 6: org.bluez.Manager.ActivateService: not found sed: unmatched '/' ./bt.sh: line 3: syntax error: "|" unexpected Please help!
(In reply to comment #12) > (In reply to comment #11) > > -as a user, create a file bt.sh with the following content (be sure to set > > HEADSET_ADDRESS with your headset BT address : > > #!/bin/sh > > HEADSET_ADDRESS="aa:bb:cc:dd:ee:ff" > > > > MANAGER=`dbus-send --system --print-reply --dest=org.bluez /org/bluez *************** > > org.bluez.Manager.ActivateService string:audio | grep string | sed -e 's/.* *************** > > string //g' -e 's/"//g' ` > > > > DEVICE=`dbus-send --system --type=method_call --print-reply --dest="$MANAGER" *************** > > /org/bluez/audio org.bluez.audio.Manager.CreateDevice string:"$HEADSET_ADDRESS" *************** > > | grep string | sed -e 's/.* string //g' -e 's/"//g' ` > > > > dbus-send --system --type=method_call --print-reply --dest="$MANAGER" *************** > > "$DEVICE" org.bluez.audio.Sink.Connect > > I tried this... But.. the result then i run bt.sh looks like this: > > Nokia-N810-51-3:/home/user# ./bt.sh > Usage: dbus-send [--help] [--system | --session] [--dest=NAME] [--type=TYPE] > [-- print-reply=(literal)] > [--reply-timeout=MSEC] <destination object path> <message > name> [contents ...] > ./bt.sh: line 6: org.bluez.Manager.ActivateService: not found > sed: unmatched '/' > ./bt.sh: line 3: syntax error: "|" unexpected > > Please help! > I think you might have some newlines that shouldn't be there (from wrapping); I've marked them with ***************.
since a2dp works now with some hacking, I would like to know if there is a way to use AVRCP. I would like to use the buttons on my headset. Regards, Christoph
Hi, I had the same errors. Was typed using vi, exactly as was posted. Please advise. Thanks (In reply to comment #13) > (In reply to comment #12) > > (In reply to comment #11) > > > -as a user, create a file bt.sh with the following content (be sure to set > > > HEADSET_ADDRESS with your headset BT address : > > > #!/bin/sh > > > HEADSET_ADDRESS="aa:bb:cc:dd:ee:ff" > > > > > > MANAGER=`dbus-send --system --print-reply --dest=org.bluez /org/bluez > *************** > > > org.bluez.Manager.ActivateService string:audio | grep string | sed -e 's/.* > *************** > > > string //g' -e 's/"//g' ` > > > > > > DEVICE=`dbus-send --system --type=method_call --print-reply --dest="$MANAGER" > *************** > > > /org/bluez/audio org.bluez.audio.Manager.CreateDevice string:"$HEADSET_ADDRESS" > *************** > > > | grep string | sed -e 's/.* string //g' -e 's/"//g' ` > > > > > > dbus-send --system --type=method_call --print-reply --dest="$MANAGER" > *************** > > > "$DEVICE" org.bluez.audio.Sink.Connect > > > > I tried this... But.. the result then i run bt.sh looks like this: > > > > Nokia-N810-51-3:/home/user# ./bt.sh > > Usage: dbus-send [--help] [--system | --session] [--dest=NAME] [--type=TYPE] > > [-- print-reply=(literal)] > > [--reply-timeout=MSEC] <destination object path> <message > > name> [contents ...] > > ./bt.sh: line 6: org.bluez.Manager.ActivateService: not found > > sed: unmatched '/' > > ./bt.sh: line 3: syntax error: "|" unexpected > > > > Please help! > > > > I think you might have some newlines that shouldn't be there (from wrapping); > I've marked them with ***************. >
Both A2DP and AVRCP will be officially supported in Fremantle. Thank you very much to the patient supporters of these features.
Can we set this as fixed or do you prefer to wait for the code? Personal opinion: in the case of generic enhancement requests like this one the word of an authorized Nokia speaker could be enough. As an example with this report, I confirm this feature is covered in Fremantle and it's already working in internal testing.
(In reply to comment #17) > Personal opinion: in the case of generic enhancement requests like this one the > word of an authorized Nokia speaker could be enough. > I'd say it can be resolved. That said, I don't doubt there will be an uproar from current generation owners. > As an example with this report, I confirm this feature is covered in Fremantle and > it's already working in internal testing. > Well, if it's working in internal testing, then it's already in the code. ;)
Uproar is ok as long as it can be converted into activity and progress. :) Resolving.
Closing as "FIXED in Fremantle" is fine if some internal code already exists.
Setting Target Milestone to Fremantle SDK beta.
"FIXED in Fremantle" does n8x0 users no good and is therefore not a fix in the least. this bug should be reopened.
(In reply to comment #22) > "FIXED in Fremantle" does n8x0 users no good and is therefore not a fix in the > least. this bug should be reopened. No, as this is a WONTFIX for Maemo4. Maemo4 is in maintenance mode and Nokia will only provide bugfixes for critical issues if at all. For your interest the Mer project aims to provide a community backport of Maemo5 for 770/N8x0 devices. See http://wiki.maemo.org/Mer for more information.