Matthew: > OK, I can confirm that, for me, forcing gstreamer to use OSS > instead of sun audio makes the jitteriness even worse! > > I did truss on rhythmbox while it was playing. Now I must admit > that I don't really know what I'm doing with truss, but I can > make an educated guess. Looking at in the output, I get the > same as quoted by jkeil, i.e. 1764 byte writes, and using > AUDIO_GETINFO, which I now understand means it was using the > Sun Audio driver.
It is better to test with the OSS interfaces rather than the SunAudio ones. Starting with build 115, the SunAudio interfaces are just a wrapper shim around the OSS interfaces, so using SunAudio just adds a level of indirection. Though, audio input and output should work using either. There are problems using the SunAudio mixer interfaces, but these wouldn't be related to sound output. > If I remove the file /usr/lib/gstreamer-0.10/libgstsunaudio.so > and start rhythmbox again, I get even worse jittery audio - I > don't even have to do anything else with the computer to make > it jitter whereas before I had to be doing things that caused CPU activity. Do you also have problems using OSS directly, without using GStreamer? For example does audioplay also have problems? > I did a truss again: different looking output, and no sign of > AUDIO_GETINFO, so I assume it is using the OSS driver now. The > main writes I'm seeing are 1060 bytes, which is even smaller > than with the Sun Audio driver, and would explain the REALLY > bad jitters. Yes, if you removed libgstsunaudio.so, and are not seeing AUDIO_GETINFO ioctls, then you would be using the OSS plugin. > I suppose that means it must be a gstreamer bug does it? Not necessarily. Try audioplay and let us know if this is a problem you only see with GStreamer, or with OSS in general. If the problem also manifests with audioplay, then it is likely a problem with support for your audio device. If so, I'd file a bug at http://defect.opensolaris.org and provide details about your device. You can run the following commands to get information about the device. $ cat /dev/sndstat $ mixerctl -C Brian Brian
