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
next prev parent 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