public inbox for linux-bluetooth@vger.kernel.org
 help / color / mirror / Atom feed
From: Robert Huitl <bluez-devel@huitl.de>
To: BlueZ development <bluez-devel@lists.sourceforge.net>
Subject: Re: [Bluez-devel] a2dpd and mplayer - any chance to get it working?
Date: Wed, 17 Jan 2007 19:05:53 +0100	[thread overview]
Message-ID: <200701171905.53515.bluez-devel@huitl.de> (raw)
In-Reply-To: <7A6DA545D7FDCC4B93DB651FDBC1EDDE4E6EBF@eumonex01.palmsource.com>

On Wednesday 17 January 2007 08:03, Frederic Dalleau wrote:
> Robert,
> The sound is ok in mplayer! But the movie is a bit slow :D ...

Yes exactly :)
And then it prints that message about slow CPU, buggy sound drivers, etc.

> If you plugin is the pcm.!default, then you can workaround the problem by
> outputting audio to esound instead of alsa (see mplayer preferences). Not
> the best, but worked for me. +/- helped having perfect synchronisation with
> movie.

Nice. I will try this, but actually I'd rather not have another sound daemon 
(artsd is causing enough problems...)

> Brad,
>  I was wondering about alsa plugins :
> xmms relies on alsa timing to play, so in the plugin, there is a sleep()
> call, this will wait a little bit until it is time to retievre new data.
> But it seems some players (like mplayer) wants to do their own timing or at
> least don't want to sleep. They need to use that time to do some decoding
> instead. If you sleep too long, the decoding will be defered and the sound
> or movie will be broken.

You are talking about this code, aren't you?

static snd_pcm_sframes_t a2dp_transfer2(snd_pcm_ioplug_t * io, char *buf, 
int32_t datatoread)
[...]
  // The data are sent to the daemon that act as a proxy thus we double 
transfer delay to compensate latency
  a2dp_timer_notifyframe(&a2dp->TimerInfos);
  delay = a2dp_timer_sleep(&a2dp->TimerInfos, 4*A2DPTIMERPREDELAY);

Without really knowing what I was doing, I removed the a2dp_timer_sleep call. 
The result: mplayer plays the video as fast as possible (sound was broken, of 
course).

So maybe this delay is too long (however decreasing the delay did not improve 
things) or should not be there at all.

> Is there a rule to distinguish? Or some magic value to sleep?

I had a look at the io->nonblock variable and compared its value while playing 
with mplayer and play (part of sox), but it's 0 for both.

However, mplayer audio output devices implement a function
/* delay in seconds between first and last sample in buffer */
static float get_delay(void)

This function basically calls snd_pcm_delay(), which can be implemented in the 
a2dp io plugin. Mplayer calls this function quite frequently, maybe this is 
how it knows when to write new audio samples.

Robert

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Bluez-devel mailing list
Bluez-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bluez-devel

  reply	other threads:[~2007-01-17 18:05 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-15  2:26 [Bluez-devel] a2dpd and mplayer - any chance to get it working? Robert Huitl
2007-01-17  7:03 ` [Bluez-devel] RE : " Frederic Dalleau
2007-01-17 18:05   ` Robert Huitl [this message]
2007-01-17 18:35   ` Fabien Chevalier
2007-01-17 19:15     ` Brad Midgley
2007-01-18 17:50       ` Fabien Chevalier
2007-01-28 19:30   ` [Bluez-devel] " Robert Huitl
2007-01-29  3:01     ` Brad Midgley
2007-02-02 16:55       ` Frédéric DALLEAU
2007-02-06 19:25         ` Michael Frey
2007-03-27 10:39         ` Tim Chick
2007-03-27 13:33           ` Frederic Dalleau
2007-03-27 14:01             ` Tim Chick
2007-04-05  8:59               ` [Bluez-devel] Question about poll() - was " Frederic Dalleau
2007-04-06  5:17                 ` Brad Midgley
2007-04-06 16:05               ` [Bluez-devel] " Frederic Dalleau

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=200701171905.53515.bluez-devel@huitl.de \
    --to=bluez-devel@huitl.de \
    --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