[pulseaudio-discuss] snd_pcm_avail no reliable

Alexander E. Patrakov patrakov at gmail.com
Mon Jun 8 22:27:54 PDT 2015


09.06.2015 10:02, Raymond Yau wrote:
>
>  >
>  >   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?

-- 
Alexander E. Patrakov


More information about the pulseaudio-discuss mailing list