[pulseaudio-discuss] snd_pcm_avail no reliable
golden
magic.lixin at gmail.com
Mon Jun 8 21:14:55 PDT 2015
Hi
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.
BR,
Lixin
在 2015年06月09日 11:38, Raymond Yau 写道:
>
> >
> > I found some audio noise problem when I trying to set the sink
> latency to a lower value.
> >
> > here is the alsa dump:
> >
> > D/NMAudio ( 1959): Its setup is:
> > D/NMAudio ( 1959): stream : PLAYBACK
> > D/NMAudio ( 1959): access : MMAP_INTERLEAVED
> > D/NMAudio ( 1959): format : S16_LE
> > D/NMAudio ( 1959): subformat : STD
> > D/NMAudio ( 1959): channels : 2
> > D/NMAudio ( 1959): rate : 22050
> > D/NMAudio ( 1959): exact rate : 22050 (22050/1)
> > D/NMAudio ( 1959): msbits : 16
> > D/NMAudio ( 1959): buffer_size : 8192
> > D/NMAudio ( 1959): period_size : 2048
> > D/NMAudio ( 1959): period_time : 92879
> > D/NMAudio ( 1959): tstamp_mode : ENABLE
> > D/NMAudio ( 1959): period_step : 1
> > D/NMAudio ( 1959): avail_min : 7751
> > D/NMAudio ( 1959): period_event : 0
> > D/NMAudio ( 1959): start_threshold : -1
> > D/NMAudio ( 1959): stop_threshold : 1073741824
> > D/NMAudio ( 1959): silence_threshold: 0
> > D/NMAudio ( 1959): s
> >
> > here is the log when problem happened:
>
> https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/tree/include/linux/dmaengine.h
>
> * @DMA_RESIDUE_GRANULARITY_SEGMENT: Residue is updated after each
> successfully
> * completed segment of the transfer (For cyclic transfers this is
> after each
> * period). This is typically implemented by having the hardware
> generate an
> * interrupt after each transferred segment and then the drivers
> updates the
> * outstanding residue by the size of the segment. Another possibility
> is if
> * the hardware supports scatter-gather and the segment descriptor has
> a field
> * which gets set after the segment has been completed. The driver
> then counts
> * the number of segments without the flag set to compute the residue.
> * @DMA_RESIDUE_GRANULARITY_BURST: Residue is updated after each
> transferred
> * burst. This is typically only supported if the hardware has a progress
> * register of some sort (E.g. a register with the current read/write
> address
> * or a register with the amount of bursts/beats/bytes that have been
> * transferred or still need to be transferred).
> */
>
> How accurate can you sound card hw_ptr increase ? period size or DMA
> brust size ?
>
> http://mailman.alsa-project.org/pipermail/alsa-devel/2014-September/081501.html
>
> you can try Alexander's pcm_avail.c
>
>
>
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20150609/fc43ca7f/attachment.html>
More information about the pulseaudio-discuss
mailing list