[alsa-devel] Status of snd_pcm_rewind()
Hi!
What's the status of snd_pcm_rewind()? Is it available on all devices? I assume not (at least dmix doesn't...). But I guess I can safely assume it is available when mmap is used? Is there any API function to test if it is available?
I am working on adding "glitch-free" support to PulseAudio. I.e. have a huge playback buffer (> 2s), and schedule playback based on system timers instead of sound card interrupts, thus allowing us to dynamically adjust the inetrrupt frequency to the clients that are connected, and thus save power. I can enable this technique only if I can rewrite the playback buffer whenever I need to, thus I need to in advance if snd_pcm_rewind() will work or not.
Lennart
At Sat, 22 Dec 2007 19:33:01 +0100, Lennart Poettering wrote:
Hi!
What's the status of snd_pcm_rewind()? Is it available on all devices?
It should work on all "hw" PCM, but not via every plugin. The functionality is basically in the PCM core level, independent from the lowlevel driver implementation.
dmix and dshare don't work (unimplemented). The other plugins should work, though.
I assume not (at least dmix doesn't...). But I guess I can safely assume it is available when mmap is used? Is there any API function to test if it is available?
No, unfortunately. A self-test?
Takashi
On Mon, 07.01.08 15:06, Takashi Iwai (tiwai@suse.de) wrote:
At Sat, 22 Dec 2007 19:33:01 +0100, Lennart Poettering wrote:
Hi!
What's the status of snd_pcm_rewind()? Is it available on all devices?
It should work on all "hw" PCM, but not via every plugin. The functionality is basically in the PCM core level, independent from the lowlevel driver implementation.
dmix and dshare don't work (unimplemented). The other plugins should work, though.
I assume not (at least dmix doesn't...). But I guess I can safely assume it is available when mmap is used? Is there any API function to test if it is available?
No, unfortunately. A self-test?
Ii assume th "No" is a response to the question if there was any API function to test whether it is available, right?
What's the answer to the question that I can safely assume that it is available when mmap is used?
May I suggest adding an API function that can be used to detect whether _rewind() functionality is available?
Lennart
At Mon, 7 Jan 2008 16:14:58 +0100, Lennart Poettering wrote:
On Mon, 07.01.08 15:06, Takashi Iwai (tiwai@suse.de) wrote:
At Sat, 22 Dec 2007 19:33:01 +0100, Lennart Poettering wrote:
Hi!
What's the status of snd_pcm_rewind()? Is it available on all devices?
It should work on all "hw" PCM, but not via every plugin. The functionality is basically in the PCM core level, independent from the lowlevel driver implementation.
dmix and dshare don't work (unimplemented). The other plugins should work, though.
I assume not (at least dmix doesn't...). But I guess I can safely assume it is available when mmap is used? Is there any API function to test if it is available?
No, unfortunately. A self-test?
Ii assume th "No" is a response to the question if there was any API function to test whether it is available, right?
Right.
What's the answer to the question that I can safely assume that it is available when mmap is used?
If I understand correctly -- mmap of the "hw" PCM, then yes, it's always supported. (Note that you can still do mmap-alike over any plugins)
May I suggest adding an API function that can be used to detect whether _rewind() functionality is available?
Adding it would be easy, but I'm a bit worrying about blindly addition. Implementing rewind on dmix would be a better option, but it seems difficult because of its design...
Takashi
participants (2)
-
Lennart Poettering
-
Takashi Iwai