From: Andreas Pape Date: Tue, 4 Apr 2017 06:29:52 +0000 (+0530) Subject: plugin:dshare: wrong state reporting X-Git-Tag: v1.1.4~16 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=ad6957c618676d31b65d1aa38f60542795d6406b;p=alsa-lib.git plugin:dshare: wrong state reporting If plugin dshare detects underrun, it reports this to the user via return value -EPIPE and setting dshare state to 'xrun' which is correct. But, if user after this wants to check the stream state, it is misleadingly reported as 'running' instead of 'xrun'. With this behavior aplay e.g. will not do a proper underrun handling (restarting stream) but terminates streaming. This is due to plugin dshare always returns state of the slave pcm, in pcm_ops->state() which is not correct. Signed-off-by: Andreas Pape Signed-off-by: Mounesh Sutar Signed-off-by: Takashi Iwai --- diff --git a/src/pcm/pcm_dshare.c b/src/pcm/pcm_dshare.c index 331f7991..4c57fb4a 100644 --- a/src/pcm/pcm_dshare.c +++ b/src/pcm/pcm_dshare.c @@ -244,7 +244,7 @@ static int snd_pcm_dshare_status(snd_pcm_t *pcm, snd_pcm_status_t * status) default: break; } - + status->state = snd_pcm_state(pcm); status->trigger_tstamp = dshare->trigger_tstamp; status->avail = snd_pcm_mmap_playback_avail(pcm); status->avail_max = status->avail > dshare->avail_max ? status->avail : dshare->avail_max;