public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
From: James Courtier-Dutton <James@superbug.demon.co.uk>
To: Marcel Holtmann <marcel@holtmann.org>
Cc: "Fred Schättgen" <bluez-devel@schaettgen.de>,
	"BlueZ Mailing List" <bluez-devel@lists.sourceforge.net>,
	"Simon Vogl" <vogl@soft.uni-linz.ac.at>
Subject: Re: [Bluez-devel] sco link help needed
Date: Sun, 22 Feb 2004 23:37:49 +0000	[thread overview]
Message-ID: <40393D4D.5070908@superbug.demon.co.uk> (raw)
In-Reply-To: <1077487791.2832.35.camel@pegasus>

Marcel Holtmann wrote:
> Hi James,
> 
> 
>>So you only want a basic read/write interface? No possibility for 
>>specifying low latency and setting accurate playback timing?
>>What would happen if the user wanted to use bluetooth headphones, and 
>>wanted sound to come out of the headphones, and the video from a DVD to 
>>be displayed on the computer screen. We need some way to ensure the two 
>>are in sync. A simple read/write interface cannot do that.
>>For playing a DVD, latency does not matter, what matters in accurate 
>>playback timing.
>>For Voice over IP, low latency is what matters.
>>I cannot see how your simple read/write interface can handle these 
>>options. The SCO interface should be able to handle all these.
> 
> 
> for incoming SCO data packets we can trust the timing of the Bluetooth
> chip. For outgoing SCO data from our side we should make sure that we
> don't send to much and overload the Bluetooth chip, but any good
> Bluetooth chip should be able to handle this and simply drop the
> unneeded packets.

What I am trying to say is that using read/write interfaces for realtime 
streams like SCO is just the wrong way to do it.
I have looked at snd-bluez-sco-2003-09-15.tar.gz and from what I can 
understand from it, the snd-bluez-sco kernel driver is just using simple 
read/write commands to a file descriptor given to it from the userspace 
daemon "bluezsco".

This approach will get sound to and from the bluetooth headset.
But SCO has the potential for so much more, so why are we restricting it?
We must allow for applications like VoIP and DVD playback. These need 
control over latency and playback timing accuracy. The current "file 
descriptor read/write" approach does not allow for that.

The bluetooth chip should not have to worry about dropping packets, the 
application should just send the chip packets when the chip wants them.

I am only asking for changes to the SCO side of things due to it's real 
time nature. Using network sockets for RFCOMM and bulk data transfers 
that are not real time in nature is fine.

Once we have proper real time SCO support, we can overlay the current 
SCO file descriptor read/write model on top if you still need it.

> 
> 
>>Ok, so you only want alsa to interface PCM (alsa's term for an audio 
>>channel, where the audio samples go.) directly to a SCO channel.
>>So, what about an application that supports alsa now. How will it set 
>>volume and mic levels on a bluetooth headset? Will the user have to add 
>>special bluetooth support to their application?
> 
> 
> This is what I meant with SCO interface. A SCO kernel module must also
> present an ALSA mixer, but it sends and receives the settings to and
> from an userspace application. So if you receive the AT command for
> increasing the volume on the RFCOMM channel, you signal this to the SCO
> kernel module and this changes the mixer settings. We will see what is
> best solution here after the SCO to ALSA PCM mapping is working.

Ok, doing that with the mixer is not a problem for me. mixer settings 
are not time critical, and simple two way IOCTLs for get/set volume etc. 
will work fine with the current userspace approach.

> 
> Regards
> 
> Marcel
> 
> 
Cheers

James

  reply	other threads:[~2004-02-22 23:37 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-19 14:36 [Bluez-devel] sco link help needed Simon Vogl
2004-02-19 15:29 ` Fred Schättgen
2004-02-21 14:37   ` James Courtier-Dutton
2004-02-22 12:27     ` Marcel Holtmann
2004-02-22 20:53       ` James Courtier-Dutton
2004-02-22 21:30         ` Marcel Holtmann
2004-02-22 22:04           ` James Courtier-Dutton
2004-02-22 22:09             ` Marcel Holtmann
2004-02-22 23:37               ` James Courtier-Dutton [this message]
2004-02-23  7:55                 ` Marcel Holtmann
2004-02-25 12:59                   ` Mauro Tortonesi
2004-02-25 13:25                     ` Marcel Holtmann
2004-02-25 14:04                       ` Mauro Tortonesi
2004-02-25 14:23                         ` Marcel Holtmann
2004-02-25 15:35                           ` Mauro Tortonesi
2004-02-25 15:37                             ` Marcel Holtmann
2004-02-25 15:46                               ` Mauro Tortonesi
     [not found]                           ` <1077728432.6021.522.camel@localhost>
2004-02-25 17:16                             ` Marcel Holtmann
2004-02-25 17:27                               ` Nils Faerber
2004-02-25 14:30                         ` James Courtier-Dutton
2004-02-25 14:59                           ` Dr. Simon Vogl
2004-02-25 15:09                             ` Marcel Holtmann
2004-02-25 14:22                     ` James Courtier-Dutton
2004-02-23 16:35               ` libs2 and utils2 Aaron Klish
2004-02-23 17:19                 ` [Bluez-devel] " Marcel Holtmann
2004-02-22 21:54         ` [Bluez-devel] sco link help needed Fred Schättgen
2004-02-22 22:00           ` Marcel Holtmann
2004-02-22 22:35             ` Fred Schättgen
2004-02-22 12:44     ` Dr. Simon Vogl

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=40393D4D.5070908@superbug.demon.co.uk \
    --to=james@superbug.demon.co.uk \
    --cc=bluez-devel@lists.sourceforge.net \
    --cc=bluez-devel@schaettgen.de \
    --cc=marcel@holtmann.org \
    --cc=vogl@soft.uni-linz.ac.at \
    /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