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