<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
09.06.2015 11:27, Arun Raghavan wrote:<br>
<blockquote
cite="mid:CACuU-+h9LKBaq4=e9ev2+cm_LdbMHYR8MhLjAsQNzFNrtyvU6A@mail.gmail.com"
type="cite">
<p dir="ltr"><br>
On 09-Jun-2015 11:26 am, "Raymond Yau" <<a
moz-do-not-send="true"
href="mailto:superquad.vortex2@gmail.com">superquad.vortex2@gmail.com</a>>
wrote:<br>
><br>
> >><br>
> >><br>
> >> ><br>
> >> > below is what the terminate shows when
running pcm_avail.c<br>
> >> ><br>
> >> > uid=0 gid=1007@nutshell:/ # alsactl_test<br>
> >> > min_period_size: 8 frames, dir: 0<br>
> >> > Playback hwparams: FIFO size is 8<br>
> >> > Hardware PCM card 0 'rsnd-dai.0-dirana3.0'
device 0 subdevice 0<br>
> >> > Its setup is:<br>
> >> > stream : PLAYBACK<br>
> >> > access : RW_INTERLEAVED<br>
> >> > format : S16_LE<br>
> >> > subformat : STD<br>
> >> > channels : 2<br>
> >> > rate : 48000<br>
> >> > exact rate : 48000 (48000/1)<br>
> >> > msbits : 16<br>
> >> > buffer_size : 4096<br>
> >> > period_size : 1024<br>
> >> > period_time : 21333<br>
> >> > tstamp_mode : NONE<br>
> >> > period_step : 1<br>
> >> > avail_min : 1024<br>
> >> > period_event : 0<br>
> >> > start_threshold : 1024<br>
> >> > stop_threshold : 4096<br>
> >> > silence_threshold: 0<br>
> >> > silence_size : 0<br>
> >> > boundary : 1073741824<br>
> >> > appl_ptr : 0<br>
> >> > hw_ptr : 0<br>
> >> > Playing silence<br>
> >> > Available: 0, loop iteration: 0<br>
> >> > Available: 1024, loop iteration: 1469<br>
> >> > Available: 2048, loop iteration: 5609<br>
> >> > Available: 3072, loop iteration: 9667<br>
> >> ><br>
> >> > All I got is just the 4 lines.<br>
> >><br>
> >> If your sound card only increment hw_ptr only at
interrupt occur, you<br>
> >> need to increase default_rewind_safeguard from 256
bytes to your<br>
> >> selected period size<br>
> ><br>
> ><br>
> > 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.<br>
> ><br>
> ><br>
> >><br>
> >> This mean that your sound card won't work with
timer scheduling or<br>
> >> dynamic latency, you can only archieve low latency
by decrease period size<br>
> >> Why do pulseaudio enable timer scheduling when
most sound card use IRQ ?<br>
> ><br>
> ><br>
> > Because most broken sound cards driver authors forget
to report SNDRV_PCM_INFO_BATCH?<br>
><br>
> Why pulseaudio rely on the flag if your program can find
out the granulatity ?</p>
<p dir="ltr">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.<br>
</p>
</blockquote>
<br>
There is not only no way to query granularity, in some cases it is
simply unknown. As for my approach (of measuring it directly), I
currently think (but do not insist) that it is not suitable for
inclusion into PulseAudio, because it is based on using a silent
"test sound", busy-looping and repeatedly querying the position
until it plays out. This would be unreliable if there is an
unrelated CPU usage spike, and I think that busy-looping in general
is not welcome.<br>
<br>
-- <br>
Alexander E. Patrakov<br>
</body>
</html>