[gst-devel] bluetooth audio plugins

Benjamin Otte in7y118 at public.uni-hamburg.de
Thu Sep 22 11:27:10 CEST 2005


I've recently gotten a bluetooth headset and had wondered about using it
on Linux and seeing how bluetooth headsets are handled in Linux left me
extremely unimpressed. And that was architecturally, not the fact that it
didn't work ;)

I had expected that when I connect a bluetooth headset to my computer it
automatically creates a sound card devioce that I can talk to like to any
other sound device. This would ideally happen automatically once my
headset goes into pairing mode because I have configured my bluetooth
controller that way. Just like for example Windows handles this.

Looking at the technical side of this, the only thing that makes this
possible is having the bluetooth stack autoload an alsa-bluetooth plugin
that creates a new hw:x device. This would also solve most of your
issues, since alsa-lib could be configured to do what you want. Every
other option deeper down the stack would exclude more and more apps from
using the headset - starting with the ones that use OSS emulation.
So a GStreamer-only solution, while probably easier to code, would have
lots of apps unable to use the headset.


PS: Are you bluetooth-alsa guys on IRC smewhere? I'd like some
hand-holding while digging through the Bluetooth and kernel code - which
is even less documented than ALSA, who'd have thought. At least the 1250
pages Bluetooth core protocol docs are available ;)

On Tue, 20 Sep 2005, Brad Midgley wrote:

> Hi
> I have been working on bluetooth audio drivers with a few other
> bluetooth developers (see http://bluetooth-alsa.sf.net). Now we need to
> write them into general purpose drivers so applications like mp3 and
> videoconference software can use them.
> I've been reading in the faq and plugin docs. Do you guys think it would
> be a good fit for me to write gstreamer plugins?
> We want something that
>   - runs entirely in userspace
>   - allows multiple clients to write to the device simultaneously (using
> adder plugin or an audio server?)
>   - can be written to open the bluetooth connection on demand and close
> after it's not being used
>   - streams can be "split" such that eg writes go to the bluetooth
> headset but reads come from another device like a hardwired mic
>   - has at least a prayer of working on embedded systems :)
> There are two kinds of headsets that we're working with:
>   2-way, mono, voice-quality "headset/handsfree/sco"
>   1-way, compressed, stereo "a2dp"
> I have been researching alsa plugins, maybe combined with the dmix
> plugin but their plugin api is underdocumented unfortunately. Gstreamer
> at least has proven it can work with network plugins and bluetooth audio
> is essentially networked streaming.
> thanks guys
> Brad
> -------------------------------------------------------
> SF.Net email is sponsored by:
> Tame your development challenges with Apache's Geronimo App Server.
> Download it for free - -and be entered to win a 42" plasma tv or your very
> own Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel

More information about the gstreamer-devel mailing list