FMOD 3.4’s OSS driver still doesn’t work well with the Linux Aureal drivers, so here is how I fixed it for my Vortex2.
To make the sound play unbroken and without spewing lots of error messages, I removed the O_NONBLOCK flag from the open call in FSOUND_Output_OSS_Initialize by changing byte 0x35efb of libfmod-3.4.so from 0x08 to 0x00.
To avoid the twenty second delay before FMOD starts playing anything at all, I changed the timeout in a select call from 10 to 0 seconds by changing byte 0x35d03 of libfmod-3.4.so from 0x0a to 0x00.
I did not test the modified FMOD library extensively for adverse effects, but the changes worked fine with all the provided examples.
- Anonymous asked 16 years ago
Hello, the reason why i’m opening the oss device in non-blocking mode is to avoid a hang.
The device autodetection would hang dead if i opened it in blocking mode. (as we go oss->alsa->esd).
There might be better ways of detecting a busy oss device, but i haven’t had these problems with my soundcards that i have (brett gimme tha card!)
The select hanging must be a oss driver bug of some kind (but with blocking we might not need that), as the fd should writable directly after open() and select() should return emmediatly.
I’ll work around that and look in to this stuff when i have the hardware….
It doesn’t helt that i totally hate forums either ( i follow mailinglist much better).
(brett, fix me a mail gatway to the forum :smile:)
- mag answered 16 years ago
Hmm.. interesting way to fix the problem 😉
I also have a Vortex 2 under linux, but instead of resorting to hax0ring the fmod lib, I just used FSOUND_OUTPUT_ESD as my output device and all is sweet.
Brett or Magnus, you may want to check out the OSS opening code to see if you can make these changes officially if it does work
Please login first to submit.