Hello,
Have anybody working sound with Quake3/Quake4/doomIII and OSS on FreeBSD????
I start q4:
$ quake4 +set s_driver oss +set s_dsp "/dev/dsp15" +set s_numberOfSpeakers 2
Here is output from queke4 console:
------ OSS Sound Initialization ------
WARNING: failed to clear O_NONBLOCK on sound device '/dev/dsp15': Invalid argument
close sound device
WARNING: sound subsystem disabled
--------------------------------------
no sound with Intel High definition
Moderators: hannu, dev, cesium
dev wrote:There is no Linux MMAP() support in OSS so quake4 from Linux will not work in FreeBSD. We'll check the nonblocking problem as well. Since we don't have Q4 to test with we're not sure.
Best regards
Dev Mazumdar
Thank you for replay.
And how about /usr/ports/games/linux-doom3-demo ?
It has same problem, here ist output of truss
$ pwd
/usr/local/share/linux-quake3-demo
$ truss ./q3demo "$@"
.....
linux_brk(0x8530000) = 139657216 (0x8530000)
linux_brk(0x8540000) = 139722752 (0x8540000)
linux_ioctl(0x9,0xc068464a,0xbfbfc150) = 0 (0x0)
linux_ioctl(0x8,0xc0384657,0xbfbfc0c0) = 0 (0x0)
write(2,0xbfbfba70,38) = 38 (0x26)
setresuid(0xffffffff,0x3e9,0xffffffff) = 0 (0x0)
linux_open("/dev/dsp15",0x2,01004124074) = 11 (0xb)
linux_getuid() = 1001 (0x3e9)
setresuid(0xffffffff,0x3e9,0xffffffff) = 0 (0x0)
linux_ioctl(0xb,0x8004500f,0xbfbfca44) = 0 (0x0)
linux_ioctl(0xb,0xc0045002,0x8126424) = 0 (0x0)
linux_ioctl(0xb,0xc0045003,0xbfbfca3c) = 0 (0x0)
linux_ioctl(0xb,0xc0045002,0x8364354) = 0 (0x0)
linux_ioctl(0xb,0xc0045005,0xbfbfca38) = 0 (0x0)
linux_ioctl(0xb,0x8010500c,0xbfbfca50) = 0 (0x0)
linux_mmap(0xbfbfca00) ERR#22 'Invalid argument'
linux_ioctl(0xb,0x40045010,0xbfbfca3c) = 0 (0x0)
linux_ioctl(0xb,0x40045010,0xbfbfca3c) = 0 (0x0)
write(2,0xbfbfba60,37) = 37 (0x25)
....
same problem with mmap() ?
Hi,
We have now fixed up mmap() problems with FreeBSD and OSS. You can run ossupdate and get the latest drivers.
However quake3 doesn't play properly on the HDA device. It works just fine on the SBLive and other devices we have.
Regarding choppyness with VLC:
/usr/ports/multimedia/vlc/work/vlc-0.8.2/modules/audio_output/oss.c
and change the code:
p_sys->i_fd = open( psz_device, O_WRONLY | O_NDELAY );
if( p_sys->i_fd < 0 )
{
msg_Err( p_aout, "cannot open audio device (%s)", psz_device );
free( p_sys );
return VLC_EGENERIC;
}
/* if the opening was ok, put the device back in blocking mode */
fcntl( p_sys->i_fd, F_SETFL,
fcntl( p_sys->i_fd, F_GETFL ) &~ FNDELAY );
TO:
p_sys->i_fd = open( psz_device, O_WRONLY);
if( p_sys->i_fd < 0 )
{
msg_Err( p_aout, "cannot open audio device (%s)", psz_device );
free( p_sys );
return VLC_EGENERIC;
}
#if 0
/* if the opening was ok, put the device back in blocking mode */
fcntl( p_sys->i_fd, F_SETFL,
fcntl( p_sys->i_fd, F_GETFL ) &~ FNDELAY );
#endif
NOTE THAT NBLOCK IS NOT REQUIRED IN OSS.
regards
Dev
We have now fixed up mmap() problems with FreeBSD and OSS. You can run ossupdate and get the latest drivers.
However quake3 doesn't play properly on the HDA device. It works just fine on the SBLive and other devices we have.
Regarding choppyness with VLC:
/usr/ports/multimedia/vlc/work/vlc-0.8.2/modules/audio_output/oss.c
and change the code:
p_sys->i_fd = open( psz_device, O_WRONLY | O_NDELAY );
if( p_sys->i_fd < 0 )
{
msg_Err( p_aout, "cannot open audio device (%s)", psz_device );
free( p_sys );
return VLC_EGENERIC;
}
/* if the opening was ok, put the device back in blocking mode */
fcntl( p_sys->i_fd, F_SETFL,
fcntl( p_sys->i_fd, F_GETFL ) &~ FNDELAY );
TO:
p_sys->i_fd = open( psz_device, O_WRONLY);
if( p_sys->i_fd < 0 )
{
msg_Err( p_aout, "cannot open audio device (%s)", psz_device );
free( p_sys );
return VLC_EGENERIC;
}
#if 0
/* if the opening was ok, put the device back in blocking mode */
fcntl( p_sys->i_fd, F_SETFL,
fcntl( p_sys->i_fd, F_GETFL ) &~ FNDELAY );
#endif
NOTE THAT NBLOCK IS NOT REQUIRED IN OSS.
regards
Dev
dev wrote:Hi,
We have now fixed up mmap() problems with FreeBSD and OSS. You can run ossupdate and get the latest drivers.
However quake3 doesn't play properly on the HDA device. It works just fine on the SBLive and other devices we have.
Dev
Supper! Thousand Thanks for your job!
On the HDA quake3 does play wery well too with sound speed 48000 :)
$ /usr/local/bin/q3demo +set sndspeed "48000"
but quake4 is dumb and truss show old problem here with ?fcntl64()?
$ pwd
/usr/local/lib/quake4
$ truss -o /tmp/q4.out /usr/local/lib/quake4//quake4.x86 "$@"
...
linux_getpid() = 1189 (0x4a5)
write(1,0x283df000,49) = 49 (0x31)
write(1,0x283df000,39) = 39 (0x27)
linux_open("/dev/dsp15",0x801,00) = 34 (0x22)
linux_fcntl64(0x22,0x3,0x0) = 2049 (0x801)
linux_fcntl64(0x22,0x4,0x1) ERR#22 'Invalid argument'
write(1,0x283df000,83) = 83 (0x53)
write(1,0x283df000,19) = 19 (0x13)
close(34) = 0 (0x0)
write(1,0x283df000,34) = 34 (0x22)
write(1,0x283df000,39) = 39 (0x27)
....
I know you don't have Quake4 but you can test it with Doom III /usr/ports/games/linux-doom3-demo, please :)
it has same problems:
$ pwd
/usr/X11R6/lib/doom3-demo
$ truss -o /tmp/truss-d3.out ./doom.x86 +set s_driver oss +set s_dsp "/dev/dsp15"
...
write(1,0x28341000,37) = 37 (0x25)
write(1,0x28341000,39) = 39 (0x27)
linux_open("/dev/dsp15",0x801,00) = 12 (0xc)
linux_fcntl64(0xc,0x3,0x0) = 2049 (0x801)
linux_fcntl64(0xc,0x4,0x1) ERR#22 'Invalid argument'
write(1,0x28341000,83) = 83 (0x53)
write(1,0x28341000,19) = 19 (0x13)
close(12) = 0 (0x0)
write(1,0x28341000,34) = 34 (0x22)
...
Best regards
Evgeny Solovyov
Anonymous wrote:dev wrote:Hi,
We have now fixed up mmap() problems with FreeBSD and OSS. You can run ossupdate and get the latest drivers.
However quake3 doesn't play properly on the HDA device. It works just fine on the SBLive and other devices we have.
Dev
Supper! Thousand Thanks for your job!
On the HDA quake3 does play wery well too with sound speed 48000![]()
$ /usr/local/bin/q3demo +set sndspeed "48000"
but quake4 is dumb and truss show old problem here with ?fcntl64()?
$ pwd
/usr/local/lib/quake4
$ truss -o /tmp/q4.out /usr/local/lib/quake4//quake4.x86 "$@"
...
linux_getpid() = 1189 (0x4a5)
write(1,0x283df000,49) = 49 (0x31)
write(1,0x283df000,39) = 39 (0x27)
linux_open("/dev/dsp15",0x801,00) = 34 (0x22)
linux_fcntl64(0x22,0x3,0x0) = 2049 (0x801)
linux_fcntl64(0x22,0x4,0x1) ERR#22 'Invalid argument'
write(1,0x283df000,83) = 83 (0x53)
write(1,0x283df000,19) = 19 (0x13)
close(34) = 0 (0x0)
write(1,0x283df000,34) = 34 (0x22)
write(1,0x283df000,39) = 39 (0x27)
....
I know you don't have Quake4 but you can test it with Doom III /usr/ports/games/linux-doom3-demo, please
it has same problems:
$ pwd
/usr/X11R6/lib/doom3-demo
$ truss -o /tmp/truss-d3.out ./doom.x86 +set s_driver oss +set s_dsp "/dev/dsp15"
...
write(1,0x28341000,37) = 37 (0x25)
write(1,0x28341000,39) = 39 (0x27)
linux_open("/dev/dsp15",0x801,00) = 12 (0xc)
linux_fcntl64(0xc,0x3,0x0) = 2049 (0x801)
linux_fcntl64(0xc,0x4,0x1) ERR#22 'Invalid argument'
write(1,0x28341000,83) = 83 (0x53)
write(1,0x28341000,19) = 19 (0x13)
close(12) = 0 (0x0)
write(1,0x28341000,34) = 34 (0x22)
...
Best regards
Evgeny Solovyov
OK I will test Doom3.
best regards
dev
Who is online
Users browsing this forum: No registered users and 2 guests