[alsa-devel] [PATCH 1/2] plugin:dshare: wrong state reporting
Takashi Iwai
tiwai at suse.de
Wed Apr 5 21:40:11 CEST 2017
On Tue, 04 Apr 2017 08:29:52 +0200,
sutar.mounesh at gmail.com wrote:
>
> From: Andreas Pape <apape at de.adit-jv.com>
>
> 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 <apape at de.adit-jv.com>
> Signed-off-by: Mounesh Sutar <sutar.mounesh at gmail.com>
Applied now. Thanks.
Takashi
>
> diff --git a/src/pcm/pcm_dshare.c b/src/pcm/pcm_dshare.c
> index 331f799..4c57fb4 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;
> --
> 2.7.4
>
More information about the Alsa-devel
mailing list