All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alexander E. Patrakov" <patrakov@ums.usu.ru>
To: Takashi Iwai <tiwai@suse.de>, alsa-devel@alsa-project.org
Subject: Re: underruns and strange code in pcm_rate.c (and patch)
Date: Thu, 08 Nov 2007 19:10:17 +0500	[thread overview]
Message-ID: <473318C9.1070804@ums.usu.ru> (raw)
In-Reply-To: <s5hy7dbvcgf.wl%tiwai@suse.de>

Takashi Iwai wrote:

> The problem is that the hardware is woken up only at the period size
> of the slave side.  Assume the slave (hardware playback) is running
> 48kHz and the client (input) is 44.1kHz.  When dmix is used, usually
> the period size = 1024 in the h/w side.  Then the period size of the
> client side is supposed to be 940.
> Here, note that 940 != 1024 * 44.1 / 48.0 exactly.  This rounding
> causes the drift of wake-up time at each period and the delay is
> accumulated.

Let me propose a solution: let the "rate" plugin return a rate slightly 
different from the requested one, adjusted based on the period size, so that the 
mismatch and rounding error doesn't happen (i.e.: use 44062 Hz instead of 44100 
in calculations of pointer positions in the above example, and resample the 
client data from that rate instead of exact 44100). This would not be a 
regression anyway, as there are cards (e.g., ens1371) that can do 48 kHz only 
approximately.

-- 
Alexander E. Patrakov

  parent reply	other threads:[~2007-11-08 14:10 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-04 23:48 underruns and strange code in pcm_rate.c (and patch) Stas Sergeev
2007-11-06 11:29 ` Takashi Iwai
2007-11-06 14:47   ` James Courtier-Dutton
2007-11-06 17:14     ` Stas Sergeev
2007-11-07 11:28       ` Takashi Iwai
2007-11-07 10:40     ` Takashi Iwai
2007-11-06 16:10   ` Stas Sergeev
2007-11-07 10:54     ` Takashi Iwai
2007-11-07 17:16       ` underruns and strange code in pcm_rate.c Stas Sergeev
2007-11-07 14:23         ` Takashi Iwai
2007-11-07 18:52           ` Stas Sergeev
2007-11-08  3:36             ` Takashi Iwai
2007-11-08  8:09               ` Stas Sergeev
2007-11-08  5:38                 ` Takashi Iwai
2007-11-08  9:05                   ` Stas Sergeev
2007-11-08  6:17                     ` Takashi Iwai
2007-11-08 18:34                       ` Stas Sergeev
2007-11-09 16:20                   ` Timur Tabi
2007-11-09 18:17                     ` Stas Sergeev
2007-11-09 19:52                       ` Timur Tabi
2007-11-09 20:00                         ` Stas Sergeev
2007-11-09 20:06                           ` Timur Tabi
2007-11-09 20:11                             ` Lee Revell
2007-11-09 20:16                               ` Timur Tabi
2007-11-09 20:30                                 ` Lee Revell
2007-11-09 20:33                                   ` Timur Tabi
2007-11-09 21:37                                     ` Lee Revell
2007-11-09 22:52                                       ` Stas Sergeev
2007-11-09 22:53                                         ` Timur Tabi
2007-11-12 12:12                     ` Clemens Ladisch
2007-11-12 15:56                       ` Timur Tabi
2008-01-31 20:49                       ` Timur Tabi
2008-02-01 12:32                         ` Takashi Iwai
2008-02-01 14:46                           ` Timur Tabi
2008-02-01 15:07                             ` Takashi Iwai
2008-02-01 15:18                               ` Timur Tabi
2008-02-01 15:27                                 ` Takashi Iwai
2008-02-01 16:00                                   ` Timur Tabi
2007-11-07 18:40       ` underruns and strange code in pcm_rate.c (and patch) Stas Sergeev
2007-11-08  4:42         ` Takashi Iwai
2007-11-08  8:27           ` Stas Sergeev
2007-11-08  5:54             ` Takashi Iwai
2007-11-08  9:13               ` Stas Sergeev
2007-11-08  6:25                 ` Takashi Iwai
2007-11-08 14:10   ` Alexander E. Patrakov [this message]
2007-11-06 13:56 ` Stas Sergeev
2007-11-08 20:06 ` Timur Tabi
2007-11-08 22:01   ` Timur Tabi

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=473318C9.1070804@ums.usu.ru \
    --to=patrakov@ums.usu.ru \
    --cc=alsa-devel@alsa-project.org \
    --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.