[pulseaudio-discuss] [RFC PATCH] alsa-sink: Reduce hardware pointer update syscalls

Laurențiu Nicola lnicola at dend.ro
Thu Oct 2 08:36:57 PDT 2014



On Thu, Oct 2, 2014, at 14:43, Raymond Yau wrote:
> 
> What do mean when you say default-fragments *
> default-fragment-size-msec?
> 

I suppose PulseAudio uses a ring of `default-fragments` buffers, with a
length of `default-fragment-size-msec` each. For example, for 4
fragments of 25 ms, I get "snd_pcm_delay() returned a value that is
exceptionally large: -88204 bytes (-500 ms).", with 500 ms = -5 * 4 *
25.


> Seem pulseaudio using 200ms buffer and 100ms period
> 
> it is strange that hwptr is zero when app_ptr is 8820
> 
> http://cgit.freedesktop.org/pulseaudio/pulseaudio/plain/src/tests/alsa-time-test.c
> 
> Do alsa-time-test run with fillrate 441 with 10ms Interval ?
> 

Not sure I'm running it properly, but..

$ src/alsa-time-test default 2>&1 | wgetpaste -s gists
Your paste can be seen here:
https://gist.github.com/1c21953104271873047a

As you can see, it crashes with "alsa-time-test:
tests/alsa-time-test.c:244: main: Assertion `(unsigned) avail <=
buffer_size' failed." If I run "src/alsa-time-test default 0 441", it
works just fine -- as long as I don't touch it:

--- snip ---
179     1711866 1711860 1693990 78939   177     4234    0       0      
3
60      1711926 1711860 1693990^Z
[1]+  Stopped                 src/alsa-time-test default 0 441
$ fg
src/alsa-time-test default 0 441
	78939   221     4234    0       0       3
1480593 3192519 3192476 3173990 79380   65489   -61034  4       441    
3
alsa-time-test: tests/alsa-time-test.c:244: main: Assertion `(unsigned)
avail <= buffer_size' failed.

Is this unexpected?


Regards,
Laurentiu

> alsa-sink-USB Audio] alsa-sink.c: Underrun!
> 
> E: [alsa-sink-USB Audio] alsa-util.c: snd_pcm_delay() returned a value
> that
> is exceptionally large: -176572 bytes (-1000 ms).
> 
> E: [alsa-sink-USB Audio] alsa-util.c: Most likely this is a bug in the
> ALSA
> driver 'snd_usb_audio'. Please report this issue to the ALSA developers.
> 
> E: [alsa-sink-USB Audio] alsa-util.c: snd_pcm_dump():
> 
> E: [alsa-sink-USB Audio] alsa-util.c: Hardware PCM card 0 'USB Audio
> CODEC'
> device 0 subdevice 0
> 
> E: [alsa-sink-USB Audio] alsa-util.c: Its setup is:
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   stream       : PLAYBACK
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   access       : MMAP_INTERLEAVED
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   format       : S16_LE
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   subformat    : STD
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   channels     : 2
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   rate         : 44100
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   exact rate   : 44100 (44100/1)
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   msbits       : 16
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   buffer_size  : 8820
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   period_size  : 4410
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   period_time  : 100000
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   tstamp_mode  : ENABLE
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   period_step  : 1
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   avail_min    : 4410
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   period_event : 1
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   start_threshold  : -1
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   stop_threshold   : 1156055040
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   silence_threshold: 0
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   silence_size : 0
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   boundary     : 1156055040
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   appl_ptr     : 8820
> 
> E: [alsa-sink-USB Audio] alsa-util.c:   hw_ptr       : 0
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss


More information about the pulseaudio-discuss mailing list