Message ID | 1491287392-11251-1-git-send-email-sutar.mounesh@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, 04 Apr 2017 08:29:52 +0200, sutar.mounesh@gmail.com wrote: > > From: Andreas Pape <apape@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@de.adit-jv.com> > Signed-off-by: Mounesh Sutar <sutar.mounesh@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 >
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;