[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