DSP problem in Fedora

Serge de Souza serge at cs.curtin.edu.au
Fri Aug 6 06:12:48 UTC 2004


Hi all,

Some background:

We have a talking head here, the audio code works well on Redhat 7.2 
linux but on upgrade to Fedora Core 1, the audio no longer works well.

The symptoms:
	In the inner loop of the animate routine code a call is made to
PlaySamples. It is assumed that this returns and as the audio plays, the
graphics is synced with the remaining audio samples as they play out.

	In RedHat 7.2, the underlying write to the audio device will take the 
samples, they get stored in the kernel device driver or the device's 
buffer and the write returns immediately. In Fedora (or the new kernel 
used in Fedora), the write will not return until the audio has finished 
(or the last small buffers of data have been sent to the device's 
buffer). Obviously, the graphics of a Talking Head cannot be synced 
since the write to /dev/dsp and hence the PlaySamples does not return!!!
	If the device is opened in O_NDELAY or O_NONBLOCK mode (or via an ioctl 
it is made NON BLOCKING - SNDCTL_DSP_NONBLOCK ) then the Fedora device 
driver seems to return straight away (i.e it does not block) BUT seems 
to only play the first device buffer's worth of data regardless of how 
much is actually written to it. Again sync'ing is not possible when this 
happens....

We have tried older vanilla kernels as well as ALSA with no luck. This 
code was fine on RH7.2

Does anyone have an idea on what has changed from RH7.2 to FC1 that 
could be affecting this ? Or how to solve this problem ?


Thanks
Serge





More information about the fedora-list mailing list