> >> > > >> > >> > >> > >> > >> > >> > > >> > >> > 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 > > There are two cases: the first is that pointer updates happen at > period size, which should imply the BATCH flag, and we just disable > timer-based scheduling. Is this asoc sound card ? https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/commit/sound/soc/soc-generic-dmaengine-pcm.c?id=acde50a7bf1fd6ae0baa4402f0a02c4b1bd4c990 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20150609/8d823db2/attachment-0001.html>