[pulseaudio-discuss] snd_pcm_avail no reliable

Raymond Yau superquad.vortex2 at gmail.com
Tue Jun 9 00:08:32 PDT 2015


> >
> > >>
> > >>
> > >>  >
> > >>  >   below is what the terminate shows when running pcm_avail.c
> > >>  >
> > >>  >   uid=0 gid=1007 at nutshell:/ # alsactl_test
> > >>  > min_period_size: 8 frames, dir: 0
> > >>  > Playback hwparams: FIFO size is 8
> > >>  > Hardware PCM card 0 'rsnd-dai.0-dirana3.0' device 0 subdevice 0
> > >>  > Its setup is:
> > >>  >   stream       : PLAYBACK
> > >>  >   access       : RW_INTERLEAVED
> > >>  >   format       : S16_LE
> > >>  >   subformat    : STD
> > >>  >   channels     : 2
> > >>  >   rate         : 48000
> > >>  >   exact rate   : 48000 (48000/1)
> > >>  >   msbits       : 16
> > >>  >   buffer_size  : 4096
> > >>  >   period_size  : 1024
> > >>  >   period_time  : 21333
> > >>  >   tstamp_mode  : NONE
> > >>  >   period_step  : 1
> > >>  >   avail_min    : 1024
> > >>  >   period_event : 0
> > >>  >   start_threshold  : 1024
> > >>  >   stop_threshold   : 4096
> > >>  >   silence_threshold: 0
> > >>  >   silence_size : 0
> > >>  >   boundary     : 1073741824
> > >>  >   appl_ptr     : 0
> > >>  >   hw_ptr       : 0
> > >>  > Playing silence
> > >>  > Available: 0, loop iteration: 0
> > >>  > Available: 1024, loop iteration: 1469
> > >>  > Available: 2048, loop iteration: 5609
> > >>  > Available: 3072, loop iteration: 9667
> > >>  >
> > >>  >  All I got is just the 4 lines.
> > >>
> > >> If your sound card only increment hw_ptr only at interrupt occur, you
> > >> need to increase default_rewind_safeguard from 256 bytes to your
> > >> selected period size
> > >
> > >
> > > No. PulseAudio, in timer-scheduling mode, does not use periods at
all. You need to change the driver so that it reports SNDRV_PCM_INFO_BATCH,
so that PulseAudio does not try to use this mode.
> > >
> > >
> > >>
> > >> This mean that  your sound card won't work with timer scheduling or
> > >> dynamic latency, you can only archieve low latency by decrease
period size
> > >> Why do pulseaudio enable timer scheduling when most sound card use
IRQ ?
> > >
> > >
> > > Because most broken sound cards driver authors forget to report
SNDRV_PCM_INFO_BATCH?
> >
> > Why pulseaudio rely on the flag if your program can find out the
granulatity ?
>
> AFAIK, there isn't a way to figure out granularity. Having this would be
nice as we could be more intelligent about our tsched behaviour.
>

But in this case, alecandra `s program already indicate hw_ptr only
increment by period size which is not suitable to enable timer base
scheduling

The result also indicate pulseaudio have to change default rewind safeguard

What granularity do pulseaudio need for timer base scheduling ?

(e.g. sound card must report position better than 10ms processing time)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20150609/db9ee097/attachment-0001.html>


More information about the pulseaudio-discuss mailing list