[nas] Question regarding performance of playRaw and AuHandleEvents()

Jon Trulson jon at radscan.com
Wed Jun 23 20:52:00 MDT 2004


On Wed, 23 Jun 2004, Matt Prazak wrote:

> From: Matt Prazak <prazak_lists at yahoo.com>
> Date: Wed, 23 Jun 2004 08:25:43 -0700 (PDT)
> Subject: Re: [nas] Question regarding performance of playRaw and
>     AuHandleEvents()
> To: jon at radscan.com
> Cc: nas at radscan.com
> X-Spam-Status: No, hits=-4.5 required=5.0 tests=AWL,BAYES_00 autolearn=no
> 	version=2.60
>
> --- Matt Prazak <prazak_lists at yahoo.com> wrote:
> > --- Matt Prazak <prazak_lists at yahoo.com> wrote:
> > > ...
> > >
[...]
> > Matt
> >
>
> Two things:
>
> First, the "Audio Error" mentioned above is when going from Solaris to
> Linux; could this also be endian-dependent?  The actual error text is:
>

	It shouldn't be... NAS is endian safe...

>   Audio Error:  BadValue
>   Request Major code 24 ()
>   Error Serial #9
>   Current Serial #47
>

	This is Au_WriteElement.  Out of curiousity, have you tried just
using auplay (on solaris) to send a wav to a remote nas server
(solaris->linux)?  Does that work?


> Second, regarding the choppy output on Solaris, I have tried changin
> many variables both in nasd.conf and in the source code itself with no
> real improvement.  In ausuni.c, increasing MINIBUF_SAMPLES can slow
> down the choppiness and increasing SIGNAL_RATE can speed it up, but
> nothing I've tried gets rid of it.  I enabled DEBUGLOG for ausuni.c,
> and some of the output is below.  One thing that is interesting is that
> the frequency of the chop corresponded exactly with the output of each
> block of text as ogg123 was running.
>



> ...lots of similar blocks of text...
>
> enableProcessFlow()
> writeEmptyOutput(bufSize=3200)
> processAudioSignal...
> writeOutput(n=800, n*4=3200)
> writeOutput(n=224, n*4=896)
> setWriteOutputFunction()
> disableProcessFlow()
> ...processAudioSignal [0.050990 0.000002 0.041996]
> setWriteOutputFunction()
>
> enableProcessFlow()
> writeEmptyOutput(bufSize=3200)
> processAudioSignal...
> writeOutput(n=800, n*4=3200)
> writeOutput(n=224, n*4=896)
> setWriteOutputFunction()
> disableProcessFlow()
> ...processAudioSignal [0.072940 0.000002 0.042005]
> setWriteOutputFunction()
>
> ...
>
> Is any of this helpful in seeing what might be the next thing to try?
> I'm not sure if it is important, but my hardware is an Ultra 30 with
> the
> default CS4231 audio card.
>

	Unfortunately, I know next to nothing about the ausuni module - it
was written by Charles Levert, whom I haven't heard from in a couple of
years.  The code does mention your chip specifically, so that's
encouraging.

	There do seem to be a lot of tweakables in there though -
delayed_trigger seems interesting.

	It's also worth looking at whether BSD_SIGNALS is being set/used
properly.  There's some strange stuff there.

	I would first see if auplay and friends have these problems too.
Did you find any interesting/related by googling radscan.com? (ie:
'delayed_trigger site:radscan.com').. There might be some hints in the
list archive somewhere...


-- 
Jon Trulson    mailto:jon at radscan.com
ID: 1A9A2B09, FP: C23F328A721264E7 B6188192EC733962
PGP keys at http://radscan.com/~jon/PGPKeys.txt
#include <std/disclaimer.h>
"I am Nomad." -Nomad




More information about the Nas mailing list