linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johan Hedberg <johan.hedberg@gmail.com>
To: Andrzej Kaczmarek <andrzej.kaczmarek@tieto.com>
Cc: linux-bluetooth <linux-bluetooth@vger.kernel.org>
Subject: Re: Socket type in audio IPC
Date: Sat, 6 Nov 2010 13:08:21 +0200	[thread overview]
Message-ID: <20101106110821.GA18604@jh-x301> (raw)
In-Reply-To: <4CD26B4F.8070709@tieto.com>

Hi Andrzej,

On Thu, Nov 04, 2010, Andrzej Kaczmarek wrote:
> We have a problem with audio IPC, sometimes following printout can be
> seen in logs when A2DP connection fails:
> external/bluetooth/bluez/audio/pcm_bluetooth.c:1609:(audioservice_recv)
> Too short (1 bytes) IPC packet from bluetoothd
> 
> I was not able to catch this issue on my workstation for debugging so
> far, but it does not seem like ipc.h mismatch between BlueZ and ALSA
> plugin - we use one BlueZ version for a long time. Perhaps it's
> because of some unusual fragmentation (not sure how exactly sockets
> work internally) so my questions is why SOCK_STREAM sockets are used
> in audio IPC? Doesn't SOCK_SEQPACKET fit better here since we're
> dealing with messages rather than byte stream? There's no handling of
> fragmented packets in pcm_bluetooth.c at all so in case recv() returns
> less bytes than expected this is immediately returned as an error.

You're right that SOCK_SEQPACKET would be a better choice. However,
changing it would break all existing clients that use SOCK_STREAM. Since
we've already introduced the new D-Bus based solution for this which
requires updating the clients anyway I don't think it's worth trying to
fix this for the old unix socket based solution. FWIW, there are no
current plans to keep maintaining pcm_bluetooth.c since most people use
pulseaudio or some other solution and since it's quite tricky to make an
ALSA userspace plugin use D-Bus properly. Feel free to try to come up
with a patch to update pcm_bluetooth.c to use the new Media API though,
and it might just live a little bit longer ;)

Johan

      reply	other threads:[~2010-11-06 11:08 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-04  8:14 Socket type in audio IPC Andrzej Kaczmarek
2010-11-06 11:08 ` Johan Hedberg [this message]

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=20101106110821.GA18604@jh-x301 \
    --to=johan.hedberg@gmail.com \
    --cc=andrzej.kaczmarek@tieto.com \
    --cc=linux-bluetooth@vger.kernel.org \
    /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;
as well as URLs for NNTP newsgroup(s).