All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alexander E. Patrakov" <patrakov@gmail.com>
To: alsa-devel@alsa-project.org
Cc: tiwai@suse.de, clemens@ladisch.de,
	"Alexander E. Patrakov" <patrakov@gmail.com>
Subject: [PATCH 0/9] Misc fixes related to rewinds
Date: Sun, 14 Sep 2014 00:30:12 +0600	[thread overview]
Message-ID: <1410633021-20395-1-git-send-email-patrakov@gmail.com> (raw)

The idea of the series is to fix the two issues that I found [1] for the
hw plugin. snd_pcm_rewindable() sometimes returned negative values that
are actually negative amounts of samples and not error codes. Also, it
bases its calculations on stale hardware position pointer, which is not
what PulseAudio wants (alternatively, we can document the need to call
snd_pcm_avail() before snd_pcm_rewindable(), but I don't like it).

Also, similar issues in other plugins are fixed, except for "share" and
"shm" plugins that I could not really test due to unrelated crashes. I also
fixed miscelanneous cosmetic issues and bugs that I found along the way.

Note: this series touches pcm_dmix.c, but does not make it rewindable. In
other words, a variant of the test in [2] now produces a tone instead of
failing due to snd_pcm_rewind() returning 0. But it should ideally produce
silence. Obviously, there is some bug left that I have not pinpointed yet.

Same for dshare: the test produces a tone, and I don't yet know why.

[1] http://permalink.gmane.org/gmane.linux.alsa.devel/122843 and
    http://permalink.gmane.org/gmane.linux.alsa.devel/122848 (modify the
    test program to set the stop threshold larger than the buffer size)
[2] http://permalink.gmane.org/gmane.linux.alsa.devel/122179

Alexander E. Patrakov (9):
  dmix: actually rewind when running or being drained
  pcm: express the rewind size limitation logic better
  pcm: handle negative values from snd_pcm_mmap_hw_avail
  pcm, rate: use the snd_pcm_mmap_hw_avail function
  pcm, null: use the snd_pcm_mmap_avail function
  rate: handle negative values from snd_pcm_mmap_playback_hw_avail
  dsnoop: rewindable and forwardable logic was swapped
  pcm: rewindable, forwardable: don't return stale data
  pcm, file: don't recurse in the rewindable and forwardable callbacks

 src/pcm/pcm_dmix.c   | 20 ++++++++++++++------
 src/pcm/pcm_dshare.c | 16 +++++++++-------
 src/pcm/pcm_dsnoop.c | 18 ++++++++++--------
 src/pcm/pcm_file.c   |  4 ++--
 src/pcm/pcm_hw.c     |  8 +++++++-
 src/pcm/pcm_ioplug.c |  4 +++-
 src/pcm/pcm_local.h  | 18 ++++++++++++++++++
 src/pcm/pcm_null.c   |  5 +----
 src/pcm/pcm_plugin.c | 12 +++++++++---
 src/pcm/pcm_rate.c   |  9 +++------
 10 files changed, 76 insertions(+), 38 deletions(-)

-- 
2.1.0

             reply	other threads:[~2014-09-13 18:30 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-13 18:30 Alexander E. Patrakov [this message]
2014-09-13 18:30 ` [PATCH 1/9] dmix: actually rewind when running or being drained Alexander E. Patrakov
2014-09-13 18:30 ` [PATCH 2/9] pcm: express the rewind size limitation logic better Alexander E. Patrakov
2014-09-13 18:30 ` [PATCH 3/9] pcm: handle negative values from snd_pcm_mmap_hw_avail Alexander E. Patrakov
2014-09-13 18:30 ` [PATCH 4/9] pcm, rate: use the snd_pcm_mmap_hw_avail function Alexander E. Patrakov
2014-09-13 18:30 ` [PATCH 5/9] pcm, null: use the snd_pcm_mmap_avail function Alexander E. Patrakov
2014-09-13 18:30 ` [PATCH 6/9] rate: handle negative values from snd_pcm_mmap_playback_hw_avail Alexander E. Patrakov
2014-09-15  8:49   ` Takashi Iwai
2014-09-15 10:03     ` Alexander E. Patrakov
2014-09-15 10:14       ` Takashi Iwai
2014-09-16 15:52         ` Alexander E. Patrakov
2014-09-16 17:26           ` Jaroslav Kysela
2014-09-16 19:18           ` Takashi Iwai
2014-09-13 18:30 ` [PATCH 7/9] dsnoop: rewindable and forwardable logic was swapped Alexander E. Patrakov
2014-09-13 18:30 ` [PATCH 8/9] pcm: rewindable, forwardable: don't return stale data Alexander E. Patrakov
2014-09-14  2:57   ` Raymond Yau
2014-09-13 18:30 ` [PATCH 9/9] pcm, file: don't recurse in the rewindable and forwardable callbacks Alexander E. Patrakov
2014-09-13 19:14 ` [PATCH 0/9] Misc fixes related to rewinds Jaroslav Kysela
2014-09-13 19:31   ` Alexander E. Patrakov
2014-09-13 19:50     ` Alexander E. Patrakov
2014-09-14 16:34       ` Jaroslav Kysela
2014-09-14  8:53 ` Raymond Yau
2014-09-14 10:11   ` Alexander E. Patrakov
2014-09-14 11:09     ` Alexander E. Patrakov
2014-09-14 11:19       ` Alexander E. Patrakov
2014-09-15  8:55         ` Takashi Iwai

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=1410633021-20395-1-git-send-email-patrakov@gmail.com \
    --to=patrakov@gmail.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=clemens@ladisch.de \
    --cc=tiwai@suse.de \
    /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.