public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
From: "Balint Kis" <balint@k-i-s.net>
To: bluez-devel@lists.sourceforge.net
Subject: [Bluez-devel] HFP and A2DP profile implementation for bluez
Date: Wed, 10 Oct 2007 06:06:07 +0200 (CEST)	[thread overview]
Message-ID: <55848.195.56.160.65.1191989167.squirrel@www.k-i-s.net> (raw)

Hello Everbody,

I posted this over the bluez-users list but apparently that wasn't the
right one.

I am trying to implement a HFP and a A2DP profile on top of bluez. I did
check out the bluez-utils/audio stuff, but I couldn't get it working, so I
decided to write my own, and publish it for your review so that you can
pull it into bluez if you like it.

My primary problem with the current bluez-utils/audio implementation
(apart that it's not working for me) is that gstreamer, d-bus is
integrated all over the place.

I would prefer to implement the HFP and A2DP profiles so that are stand
alone, and they can be integrated with d-bus, hal and gstreamer through an
API. This would allow us/me to use the profiles not only on a desktop PC
but also in an embedded environment where d-bus or gstreamer is not an
option.

The HFP profile is ready, all 4 state machines (main hfp, service
connection, incoming call, outgoing call) work properly and one can
accept, reject and make calls both from the Device or from the PC. For HFP
audio io I use ALSA.

However for the A2DP, I failed to get up the L2CAP Transport Layer so I
cannot get any audio out of L2CAP socket. My setup is the following:

Device: a2dp capable phone (SonyEricsson W850i and an MDA with windows
mobile)
PC: usb bluetooth dongle with latest bluez stack running on the
2.6.20-2936.fc7xen kernel

I implemented the L2CAP signaling layer, and the Device hooks up nicely
with the PC and starts streaming the audio data. I can see the audio data
with hcidump:

> ACL data: handle 1 flags 0x02 dlen 665
L2CAP(d): cid 0x0041 len 661 [psm 25]
AVDTP(m): ver 2 cc 0 pt 1 seqn 726 time 9478796 ssrc 1

But I don't know how to extract this data through the L2CAP socket which I
opened for signaling. Is there some socket option that I need to set up in
order to get the audio data? Or do I need to set up an other socket once
the AVDTP state machine enters into OPEN state?

Once this problem is solved, it would take me about 2 weeks to publish
both, fully featured profiles.

Any help is appreciated!

Many thanks in advance
Balint

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

             reply	other threads:[~2007-10-10  4:06 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-10  4:06 Balint Kis [this message]
2007-10-10 10:01 ` [Bluez-devel] HFP and A2DP profile implementation for bluez Marcel Holtmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55848.195.56.160.65.1191989167.squirrel@www.k-i-s.net \
    --to=balint@k-i-s.net \
    --cc=bluez-devel@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox