[pulseaudio-discuss] Uber-early glitch-free Testing Results

Lennart Poettering lennart at poettering.net
Wed Apr 16 12:04:35 PDT 2008


On Wed, 16.04.08 13:35, Sean McNamara (smcnam at gmail.com) wrote:

> Hello all,
> 
> I know glitch-free is still under heavy development, but I took a stab 
> at it today after reading some of the latest commits. I've had very good 
> results already and wanted to thank Lennart and co. for the progress on 
> glitch-free. I'll summarize my efforts in (1) building, (2) configuring 
> and (3) using, and the results of these efforts.

Uh, that's a pretty early test ;-) 

> (2) Configuration was pretty easy. I looked through default.pa, 
> daemon.conf and client.conf, but there were no new options since 0.9.10, 
> so I simply wiped out the default configurations with my customized 
> configuration files from PA 0.9.10. I use the system instance as 'pulse' 
> user, launching it as root (it quickly drops the privs, of course.)

module-alsa-sink learned a few new options.

System instance is not a good idea since it disables SHM data
transfer. I recommend against using it unless you really know what you do.

> 
> (3)
> a. One minor issue is that module-suspend-on-idle causes the PA daemon 
> to abort after a second or two of operation. I'm working on debugging 
> this to perhaps submit a patch, or at least isolate what's happening. 
> For now, I've disabled this module so I can forge ahead and test the 
> glitch-free functionality.

Uh, yeah. Almost none of the modules have been entirely ported yet and
received the necessary testing, except those I do my testing with,
which is module-alsa-sink and module-native-protocol-unix and not much
else.

Also, I haven't commited anything since a few days. Lots of fixes are
still sitting in my checkout.

> b. A moderate issue: On the server side, module-native-protocol-unix 
> aborts the server with an assertion failed if the name of a new stream 
> is NULL. So, whenever I went to play a stream, it would abort the 
> server. I tried giving it a forced name with paplay --stream-name, but 
> apparently the stream name isn't being passed to the 
> playback_stream_new() function in pulsecore/protocol-native.c.

I fixed that a while ago in my checkout, however, I didn't commit this yet.

> After re-building, it seems that the core really is working well. I 
> tested paplay, aplay (through the libasound2-pulse plugin), gstreamer 
> (pulsesink), and mpd, and all of them work as expected. Furthermore, 
> mixing of many sounds together works with very low dropout rates, even 
> with programs that infamously crackle/dropout, like Pidgin playing 
> during music playback. And my hardware only has a 371ms hardware buffer 
> size:
> Apr 16 12:02:02 vk6rms pulseaudio[5246]: module-alsa-sink.c: Using 2 
> fragments of size 32768 bytes, buffer time is 371.52ms

Uh, actaully there's a few things that cause remixing not to work as
it should in the commited SVN. I fixed it in my checkout, will shortly commit.

I assume this is HDA? Unfortunately HDA seems to be limited to
370ms. I wonder if that is a hw limitation or a driver limitation.

For testing purposes I usually use USB hw, which allows 6s or so as
buffers. It's good for testing, though it actually doesn't lower the
IRQ-load since on USB the number of IRQs is not directly dependant on
the fragment settings and mmap() audio is mostly emulated anyway.

Thanks for your interest,

Lennart

-- 
Lennart Poettering                        Red Hat, Inc.
lennart [at] poettering [dot] net         ICQ# 11060553
http://0pointer.net/lennart/           GnuPG 0x1A015CC4



More information about the pulseaudio-discuss mailing list