From: "Alexander E. Patrakov" <patrakov@gmail.com>
To: Tanu Kaskinen <tanu.kaskinen@linux.intel.com>
Cc: ALSA Development Mailing List <alsa-devel@alsa-project.org>
Subject: Re: Master Plan on rewinding
Date: Mon, 08 Sep 2014 01:05:06 +0600 [thread overview]
Message-ID: <540CAC62.3090405@gmail.com> (raw)
In-Reply-To: <1410115087.2513.40.camel@tkkaskin-mobl3.ger.corp.intel.com.tanuk.dy.fi>
08.09.2014 00:38, Tanu Kaskinen wrote:
> On Sun, 2014-09-07 at 21:16 +0600, Alexander E. Patrakov wrote:
>> === On non-rewindability of the rate plugin ===
>>
>> I intend to write a rewindable resampler eventually, but don't have time
>> now. I understand that it is an important task, but issues below (and
>> the dayjob which you can change by offering me a new one) have higher
>> priority for me. However, I want everyone to understand the following
>> point now:
>>
>> "The resampler has to be written from scratch for the reasons explained
>> in http://permalink.gmane.org/gmane.linux.alsa.devel/122179 , and
>> similar arguments apply to all other kinds of sound processing code that
>> needs history."
>>
>> For PulseAudio, it is also needed to figure out the desired interaction
>> between variable rate and rewindability. Should rewinding other than
>> "discard everything completely" be allowed at all on variable rate
>> streams when the rewind crosses the sample rate change point? I.e.,
>> write 100 samples, change rate, write 50 samples, rewind 100 samples,
>> what should be the resulting rate? Should we special-case small changes
>> vs big ones?
>
> This last paragraph isn't related to the rate plugin, right?
Right.
> So you're
> talking about PulseAudio internals only?
Yes, in the last paragraph only.
> If so, perhaps the best
> approach would be to make the current stream buffer contents
> non-rewindable when a rate change occurs, at least until someone points
> out a real use case where it is important to be able to rewind past rate
> change points in the buffer. Without any example use cases, I don't feel
> qualified to answer the question what should happen if a rewind crosses
> a rate change point (or possibly several!).
>
> Another question is that should we do something to previously buffered
> stream data when the rate changes. If the audio rate changes completely,
> e.g. from 44.1 kHz to 8 kHz, any previously buffered audio was probably
> meant to be played at 44.1 kH, but with the current code it will be
> played at 8 kHz. I don't know if there are any applications that (ab)use
> the dynamic rate feature this way, though. Maybe we could just document
> that the dynamic rate feature is only meant for small adjustments.
Thanks for the feedback. Let's see if others say anything else on this
topic.
--
Alexander E. Patrakov
next prev parent reply other threads:[~2014-09-07 19:05 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-07 15:16 Master Plan on rewinding Alexander E. Patrakov
2014-09-07 18:38 ` Tanu Kaskinen
2014-09-07 19:05 ` Alexander E. Patrakov [this message]
2014-09-07 20:51 ` Clemens Ladisch
2014-09-08 3:06 ` Raymond Yau
2014-09-08 7:31 ` Alexander E. Patrakov
2014-09-09 8:43 ` Clemens Ladisch
2014-09-09 8:55 ` Alexander E. Patrakov
2014-09-09 9:08 ` David Henningsson
2014-09-09 9:31 ` Alexander E. Patrakov
2014-09-21 2:02 ` Raymond Yau
2014-09-22 13:20 ` Lars-Peter Clausen
2014-09-22 13:36 ` Alexander E. Patrakov
2014-09-22 13:44 ` Lars-Peter Clausen
2014-09-23 8:29 ` Raymond Yau
2014-09-23 10:22 ` Alexander E. Patrakov
2014-09-09 13:45 ` Clemens Ladisch
2014-09-09 15:55 ` Alexander E. Patrakov
2014-09-09 16:09 ` Takashi Iwai
2014-09-07 23:12 ` David Henningsson
2014-09-09 19:56 ` Pierre-Louis Bossart
2014-09-10 5:38 ` Alexander E. Patrakov
2014-09-08 7:34 ` Lars-Peter Clausen
2014-09-08 7:59 ` David Henningsson
2014-09-08 8:46 ` Alexander E. Patrakov
2014-09-08 9:26 ` David Henningsson
2014-09-08 10:21 ` Alexander E. Patrakov
2014-09-09 8:43 ` Clemens Ladisch
2014-09-11 3:49 ` Raymond Yau
2014-09-11 4:19 ` A. C. Censi
2014-09-13 9:15 ` Raymond Yau
2014-09-11 5:28 ` Alexander E. Patrakov
2014-09-11 6:21 ` Raymond Yau
2014-09-13 8:57 ` Raymond Yau
2014-09-13 10:43 ` Alexander E. Patrakov
2014-09-13 11:33 ` Raymond Yau
2014-09-13 11:36 ` Alexander E. Patrakov
2014-09-13 18:35 ` Alexander E. Patrakov
2014-09-14 11:37 ` Raymond Yau
2014-09-14 12:07 ` Alexander E. Patrakov
2014-09-15 2:43 ` Raymond Yau
2014-09-15 9:19 ` Takashi Iwai
2014-09-15 9:58 ` Alexander E. Patrakov
2014-09-15 10:08 ` Takashi Iwai
2014-09-15 17:01 ` Pierre-Louis Bossart
2014-09-15 17:14 ` Alexander E. Patrakov
2014-09-15 18:08 ` Takashi Iwai
2014-09-18 1:15 ` Raymond Yau
2014-09-21 9:22 ` Alexander E. Patrakov
2014-09-21 9:53 ` Clemens Ladisch
2014-09-21 10:56 ` Alexander E. Patrakov
2014-09-22 3:27 ` Raymond Yau
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=540CAC62.3090405@gmail.com \
--to=patrakov@gmail.com \
--cc=alsa-devel@alsa-project.org \
--cc=tanu.kaskinen@linux.intel.com \
/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.