All of lore.kernel.org
 help / color / mirror / Atom feed
From: Abramo Bagnara <abramo@alsa-project.org>
To: Kai Vehmanen <kai.vehmanen@wakkanet.fi>
Cc: alsa-devel@lists.sourceforge.net
Subject: Re: Re: should i be able to abort in the middle ofsnd_pcm_mmap_{begin,commit} ?
Date: Thu, 21 Feb 2002 11:00:53 +0100	[thread overview]
Message-ID: <3C74C555.3C2D0174@alsa-project.org> (raw)
In-Reply-To: Pine.LNX.4.44.0202211113080.3739-100000@ecabase.localdomain

Kai Vehmanen wrote:
> 
> On Thu, 21 Feb 2002, Abramo Bagnara wrote:
> 
> >>> if (avail > pcm->buffer_size)
> >> Yes, this condition is faulty. It should be 'avail >= pcm->stop_threshold'.
> > - if avail > buffer_size this means either played garbage (playback) or
> > overwritten samples (capture). The return of an error is perfectly
> > sensible (also because the value returned would not have any sensible
> > meaning).
> 
> Hmm, the mmap semantics of stop_threshold should be similar to the
> read()/write() API.

And this was already true. If you use mmap or read/write is irrelevant
wrt stream stop in XRUN state.

> The functions in alsa-kernel/core/pcm_lib.c seem to take care that
> read/write don't access outside the buffer area. On the other hand it is
> possible to process more bytes than buffer_size with one call.
> 
> Similarly the short pcm mmap example in the ALSA API documentation
> (alsa-lib/src/pcm/pcm.c), can also handle situations where avail_update()
> reports more frames than buffer_size (as can happen after Jaroslav today's
> changes). It always processes period_size at a time.
> 
> It's also true that without the change, stop_threshold didn't work
> properly with mmap access.

??? Why you think that?

> 
> Yes another pov is that Jaroslav changes might cause trouble to some

Not "might", the change already now break all plugins!

> applications (at least jackd will require patching as it sets
> stop_threshold to UINT_MAX - not a big thing in this case). Hmm, could
> this cahnge result in accessing illegal memory areas in some
> situations...?
> 
> > - the insertion of SND_PCM_IOCTL_XRUN is a nonsense, as the application
> > has explicitly asked to not stop the stream when xrun happens.
> 
> It's only called if stop_threshold is set to buffer_size or lower (-> app
> _has_ asked to stop if xrun occurs).

The point is that alsa-lib will stop the stream also when application
has asked to *not* do that.

I call this a _broken_ behaviour, don't you?

That apart perhaps to have a snd_pcm_xrun call (to couple with
snd_pcm_drop and snd_pcm_drain) might be useful (who knows, I don't
believe, but...)

-- 
Abramo Bagnara                       mailto:abramo@alsa-project.org

Opera Unica                          Phone: +39.546.656023
Via Emilia Interna, 140
48014 Castel Bolognese (RA) - Italy

ALSA project               http://www.alsa-project.org
It sounds good!

_______________________________________________
Alsa-devel mailing list
Alsa-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/alsa-devel

  reply	other threads:[~2002-02-21 10:00 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-02-13 17:27 should i be able to abort in the middle of snd_pcm_mmap_{begin,commit} ? Paul Davis
2002-02-13 17:44 ` Jaroslav Kysela
2002-02-13 17:53   ` Paul Davis
2002-02-13 18:07     ` Jaroslav Kysela
2002-02-13 18:10       ` Paul Davis
2002-02-14 13:01         ` Kai Vehmanen
2002-02-14 13:35           ` Kai Vehmanen
2002-02-14 13:50             ` [Jackit-devel] " Paul Davis
2002-02-14 17:09               ` Kai Vehmanen
2002-02-14 17:37                 ` Jaroslav Kysela
2002-02-14 17:48                   ` Kai Vehmanen
2002-02-15 14:02                     ` Re: [Jackit-devel] Re: should i be able to abortin " Abramo Bagnara
2002-02-14 17:39                 ` [Jackit-devel] Re: should i be able to abort in " Kai Vehmanen
2002-02-14 17:57                   ` Jaroslav Kysela
2002-02-14 18:12                     ` Kai Vehmanen
2002-02-14 20:59                   ` Re: [Jackit-devel] " Paul Davis
2002-02-19  2:04             ` Kai Vehmanen
2002-02-19  7:15               ` Jaroslav Kysela
2002-02-21  6:21                 ` Kai Vehmanen
2002-02-21  8:14                   ` Jaroslav Kysela
2002-02-21  8:50                     ` Jaroslav Kysela
2002-02-21  9:02                     ` Re: should i be able to abort in the middle ofsnd_pcm_mmap_{begin,commit} ? Abramo Bagnara
2002-02-21  9:39                       ` Kai Vehmanen
2002-02-21 10:00                         ` Abramo Bagnara [this message]
2002-02-21 10:12                           ` Jaroslav Kysela
2002-02-21 10:42                             ` Abramo Bagnara
2002-02-21 10:06                         ` Jaroslav Kysela
2002-02-21 10:25                     ` Re: should i be able to abort in the middle of snd_pcm_mmap_{begin,commit} ? Kai Vehmanen
2002-02-21 10:35                       ` Jaroslav Kysela
2002-02-21 12:08                         ` Kai Vehmanen
2002-02-21  8:35                   ` Kai Vehmanen
2002-02-13 17:47 ` Abramo Bagnara

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=3C74C555.3C2D0174@alsa-project.org \
    --to=abramo@alsa-project.org \
    --cc=alsa-devel@lists.sourceforge.net \
    --cc=kai.vehmanen@wakkanet.fi \
    /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.