[pulseaudio-discuss] snd_pcm_avail no reliable
Arun Raghavan
arun at accosted.net
Mon Jun 8 23:27:39 PDT 2015
On 09-Jun-2015 11:26 am, "Raymond Yau" <superquad.vortex2 at gmail.com> 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?
>
> 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.
-- Arun
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20150609/b2048329/attachment.html>
More information about the pulseaudio-discuss
mailing list