mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-11-05 13:30:00 -05:00
pcm_plugin: Fix return value of snd_pcm_rewind
In case the rewind did not rewind as much as expected, e g due to time delay between the latest avail update and the rewind, we must properly account for that in the plugin layer. Otherwise, the plugin's appl ptr and the hw's appl ptr become unsynchronised, which is very bad, especially in mmap_shadow plugins, e g, this could cause the overlapping memcpy in the softvol plugin as seen here: https://bugs.freedesktop.org/show_bug.cgi?id=64299 Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Jaroslav Kysela <perex@perex.cz>
This commit is contained in:
parent
7f877543a3
commit
f2d39afe61
1 changed files with 2 additions and 2 deletions
|
|
@ -219,9 +219,9 @@ static snd_pcm_sframes_t snd_pcm_plugin_rewind(snd_pcm_t *pcm, snd_pcm_uframes_t
|
|||
snd_atomic_write_end(&plugin->watom);
|
||||
return sframes;
|
||||
}
|
||||
snd_pcm_mmap_appl_backward(pcm, (snd_pcm_uframes_t) frames);
|
||||
snd_pcm_mmap_appl_backward(pcm, (snd_pcm_uframes_t) sframes);
|
||||
snd_atomic_write_end(&plugin->watom);
|
||||
return (snd_pcm_sframes_t) frames;
|
||||
return (snd_pcm_sframes_t) sframes;
|
||||
}
|
||||
|
||||
static snd_pcm_sframes_t snd_pcm_plugin_forwardable(snd_pcm_t *pcm)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue