Hi
below is what the terminate shows when running pcm_avail.c
uid=0 gid=1007@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
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss