[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