Alsa-Devel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Lennart Poettering <mznyfn@0pointer.de>
To: alsa-devel@alsa-project.org
Subject: Re: What does snd_pcm_delay() actually return?
Date: Fri, 13 Jun 2008 16:48:50 +0200	[thread overview]
Message-ID: <20080613144850.GE21255@tango.0pointer.de> (raw)
In-Reply-To: <Pine.LNX.4.61.0806131453280.1798@tm8103-a.perex-int.cz>

On Fri, 13.06.08 15:06, Jaroslav Kysela (perex@perex.cz) wrote:

> The comment for snd_pcm_delay() in alsa-lib is clear and it's what James 
> wrote. If only one app interprets this wrongly, then I agree it would be 
> better not to change original meaning.
> 
> Then we have snd_pcm_avail_update(). Although it is stated in comment that 
> this function is useless for non-mmap mode, it's quite clear that returns 
> number of available frames to be handled (r/w) by application.
> 
> The easiest method would be just to remove "useless for non-mmap" from 
> comments for snd_pcm_avail_update() and suggest to application developers:
> 
> 1) overall latency is returned by snd_pcm_delay()
> 2) ring buffer filling is controlled by snd_pcm_avail_update(), for 
>    non-mmap access is usage of this function optional
> 
> As mentioned, it will need to fix some drivers mixing software output FIFO 
> with ring buffer (USB, PCMCIA)..
> 
> Opinions?

Sounds good to me, on first sight.

Hmm, however, there is one thing I'd still need for PulseAudio:

I'd like to know when (in time units) the playback buffer would
underrun from now on if I don't write anything anymore. For the USB
driver at least this happens much earlier than just calculating
(buffer_size - snd_pcm_avail_update()) and transforming that into time
units, because the USB driver seems to remove a block at a time from
the playback buffer, and hence it will signal the XRUN much earlier
then the aforementioned value. To fix this I'd need to know what this
granularity is. If I knew that I could fix my sleep time accordingly.

In short: I need some kind of granularity information about
snd_pcm_avail_update() but I must admit that right now I am not
actually sure which parameter would be the best one to know about.

Lennart

-- 
Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net         ICQ# 11060553
http://0pointer.net/lennart/           GnuPG 0x1A015CC4

  reply	other threads:[~2008-06-13 14:48 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-09 19:02 What does snd_pcm_delay() actually return? Lennart Poettering
2008-06-10 14:01 ` RafałMużyło
2008-06-10 14:36 ` James Courtier-Dutton
2008-06-11 16:56 ` Takashi Iwai
2008-06-11 20:24   ` Colin Guthrie
2008-06-11 21:40     ` Tomas Carnecky
2008-06-12 10:25     ` Takashi Iwai
2008-06-12 11:51       ` Colin Guthrie
2008-06-12 12:08         ` Takashi Iwai
2008-06-12 21:00           ` Lennart Poettering
2008-06-13  6:22             ` Takashi Iwai
2008-06-12 20:52   ` Lennart Poettering
2008-06-13  6:13     ` Takashi Iwai
2008-06-13 13:51       ` Lennart Poettering
2008-06-13 13:55         ` Jaroslav Kysela
2008-06-13 14:29           ` Lennart Poettering
2008-06-13  6:59     ` Takashi Iwai
2008-06-13  8:14       ` Jaroslav Kysela
2008-06-13 10:14         ` James Courtier-Dutton
2008-06-13 12:44           ` Colin Guthrie
2008-06-13 13:06             ` Jaroslav Kysela
2008-06-13 14:48               ` Lennart Poettering [this message]
2008-06-13 15:02                 ` Jaroslav Kysela
2008-06-13 15:42                   ` Takashi Iwai
2008-06-17  0:53                     ` Eliot Blennerhassett
2008-06-13 14:38           ` Lennart Poettering
2008-06-13 15:27         ` Takashi Iwai
2008-06-13 15:44           ` Jaroslav Kysela
2008-06-13 15:59             ` Takashi Iwai
2008-06-13 16:20               ` Jaroslav Kysela
2008-06-13 16:38                 ` Takashi Iwai
2008-06-13 16:48                   ` Takashi Iwai
2008-06-13 19:55                 ` James Courtier-Dutton
2008-06-16 12:07                   ` Jaroslav Kysela
2008-06-19 17:59                     ` Lennart Poettering
2008-06-13 19:59                 ` James Courtier-Dutton
2008-06-13 14:25       ` Lennart Poettering
2008-06-13 15:55         ` Takashi Iwai
2008-06-13 16:11           ` Jaroslav Kysela
2008-06-13 16:26             ` Takashi Iwai
2008-06-13 16:47               ` Jaroslav Kysela
2008-06-13 16:52                 ` Takashi Iwai
2008-06-13 17:37                   ` Jaroslav Kysela
2008-06-13 18:23                     ` Takashi Iwai
2008-06-13 18:48                     ` Lennart Poettering
2008-06-13 18:43                 ` Lennart Poettering
2008-06-13 18:29               ` Lennart Poettering
2008-06-13 18:46                 ` Takashi Iwai
2008-06-13 19:01                   ` Lennart Poettering
2008-06-13 19:05                     ` Takashi Iwai
2008-06-13 18:22           ` Lennart Poettering
2008-06-13 18:32             ` Takashi Iwai
2008-06-14  9:51             ` James Courtier-Dutton

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=20080613144850.GE21255@tango.0pointer.de \
    --to=mznyfn@0pointer.de \
    --cc=alsa-devel@alsa-project.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