OSDN Git Service

pcm: direct: Fix the missing appl_ptr update
authorTakashi Iwai <tiwai@suse.de>
Fri, 22 Jan 2021 14:48:39 +0000 (15:48 +0100)
committerJaroslav Kysela <perex@perex.cz>
Fri, 22 Jan 2021 16:58:07 +0000 (17:58 +0100)
commitf2c1a9f3279a30cbd8dcba1eaf0d52f50b56b886
tree0ce9baa820b482de7aa4b066c2287c2e0407ba6b
parentae7362c996e0b991c399cc26c6d0b3c8e295e83c
pcm: direct: Fix the missing appl_ptr update

A snd_pcm_status() call for the direct plugins receives the status
from the slave PCM, but this doesn't contain a valid appl_ptr, since
the slave PCM for the direct plugins is in a free-wheel mode, hence
the appl_ptr is always zero.  This result in the inconsistent
status->appl_ptr and pcm->appl.ptr, hitting the recently introduced
assert() call.

Fix it by transferring the plugin's appl_ptr to the upper caller.

BugLink: https://bugzilla.opensuse.org/show_bug.cgi?id=1181194
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
src/pcm/pcm_dmix.c
src/pcm/pcm_dshare.c
src/pcm/pcm_dsnoop.c