Bart:

> Ok.  Can you tell me under what conditions you needed to
> bump the ring buffer size (eg load, machine, etc) and
> is this adjustable or a compile time setting?

My machine is a 2 GHz x86 running Solaris Nevada build 30.  It
has a SoundBlaster audio card, which is a nicer audio card and
may have a larger audio output buffer than other cards have.
Not sure about this.

On my machine, if I don't set the buffer to at least 512K, the
audio output always stutters like the audio device is starving
every few seconds.

The ring buffer size is hard-coded in the sunaudiosink plugin.
Most GStreamer sink plugins have logic to tell the audio device
how large the output buffer should be, and make sure to set it
to a smaller value.  It doesn't seem possible to find out the
audio output buffer size or change it on Solaris via the SunAudio
interfaces.

If you want to modify the code and play with different values
for the ringbuffer, then just install Sun Studio 11 on your
machine, install the CBE, get the vermillion spec-files and
rebuild the SUNWgnome-media package.

Info about how to get the CBE and spec-files is here:

   http://gnome.ireland/gnome/releng/jds/cbe/

After rebuilding SUNWgnome-media, you can edit the sunaudio code
by going into the following directory:

/jds/packages/BUILD/SUNWgnome-media-2.14.0/gst-plugins-good-0.10.2/sys/sunaudio

Then edit the gstsunaudiosink.c file.  Note in the function
gst_sunaudiosink_prepare that spec->segsize = 4096 and
spec->segtotal = 128.  The ringbuffer is set to the product of
these two values (512K).

If you can find a way to make the sink plugin perform better, we
can get those changes upstream.

Brian

Reply via email to