All of lore.kernel.org
 help / color / mirror / Atom feed
From: Clemens Ladisch <clemens@ladisch.de>
To: Stefan Schoenleitner <dev.c0debabe@gmail.com>
Cc: alsa-devel <alsa-devel@alsa-project.org>
Subject: Re: underruns and POLLERR when copying audio frames
Date: Wed, 21 Jul 2010 09:07:24 +0200	[thread overview]
Message-ID: <4C469CAC.3030202@ladisch.de> (raw)
In-Reply-To: <4C462827.10105@gmail.com>

Stefan Schoenleitner wrote:
> Clemens Ladisch wrote:
> > How do you synchronize the clocks of both devices?
> 
> I don't.  [...]
> I guess if clock drift gets too high, I will get xruns as well ?

Yes.

> > Why would mmap be more ideal?
> 
> I though that it would be possible to use mmapping to "connect" sound
> devices together in a way that read/write operations in between are no
> longer necessary.

Indeed.

> But as mmapping just seems to work for files, I no longer think it is
> possible.

Some optimization is possible even when only one device supports mmap:
When you want to copy from the hardware device to the plugin, you could
call the plugin's snd_pcm_writei with an address in the sound card's
buffer as the source.

> > To avoid overruns in the capture device, use a bigger buffer, which will
> > _not_ increase latency.
> 
> Can you explain to me why a bigger capture buffer will not introduce
> latency ?
> IMHO if there is a large capture buffer, then the sound-card will need
> to capture until the buffer is filled.
> Once this is the case, the application can start to read from the
> capture device.

The application can read from the capture buffer at any time.  When
using a blocking snd_pcm_read* call, it gets woken up at the end of each
period, if avail_min is not larger than the period size.

> It seems that at least one of my devices only supports a small avail_min
> setting.

avail_min can be as large as the buffer size.


Regards,
Clemens

  reply	other threads:[~2010-07-21  7:07 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-20 11:00 underruns and POLLERR when copying audio frames Stefan Schoenleitner
2010-07-20 13:41 ` Clemens Ladisch
2010-07-20 22:50   ` Stefan Schoenleitner
2010-07-21  7:07     ` Clemens Ladisch [this message]
2010-07-21 10:20       ` Stefan Schoenleitner
2010-08-02  3:02         ` pl bossart

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=4C469CAC.3030202@ladisch.de \
    --to=clemens@ladisch.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=dev.c0debabe@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.