The Ur-Quan Masters Discussion Forum

The Ur-Quan Masters Re-Release => Technical Issues => Topic started by: jku on February 24, 2006, 02:40:47 pm



Title: sound/video on embedded linux
Post by: jku on February 24, 2006, 02:40:47 pm
I now have uqm running acceptably on the maemo platform / Nokia 770 *, and I'm currently looking into what kind of settings I should change to make it more enjoyable.

 I've already halved the "Low quality" SDL audio frequency and channels (into 11025 and 1) in audiodrv_sdl.c. This lowers the amount of buffer underruns to almost zero. If someone has a hunch about the lower limits of "acceptable quality" regarding those numbers, I'd love to hear it.

 Is there something else  (sound/video quality-wise) I should take a look at? 

 There is a dependency for vorbis libs, but my content pack (uqm-0.5.0-content.uqm) doesn't seem to contain any: Are oggs used only in the larger content packs? Can the dependency be easily dropped, or am I missing something?

Also, any general performance hints are greatly appreciated.
Thanks,
 -jussi

*) Nokia 770 Technical info:
processor: TI OMAP 1710, 220 MHz ARM
fpu: none
memory: 64MB RAM + 128 MB Flash (+rs-mmc)
screen: 800*480*16 TFT


Title: Re: sound/video on embedded linux
Post by: JHGuitarFreak on February 24, 2006, 04:13:20 pm
There is a dependency for vorbis libs, but my content pack (uqm-0.5.0-content.uqm) doesn't seem to contain any: Are oggs used only in the larger content packs? Can the dependency be easily dropped, or am I missing something?


The only 'oggs' i only know of are in the 3DO voices and 3DO music packs, and technically there is no 'video' unless you have the 3DO FMV's.

so i guess you could drop the dependency for ogg's
but i'm not sure if the ogg/vorbis have anything to do with .wav support


Title: Re: sound/video on embedded linux
Post by: Novus on February 24, 2006, 05:04:03 pm
Vorbis support is not used for the standard content package. You should be able to remove Vorbis support by editing the files in src/sc2code/libs/sound/decoders; removing oggaud.* and removing the references to Ogg Vorbis in decoder.c ought to do the trick (I'm surprised there isn't a build configuration option for this). You may also want to remove .DUK video and audio support while you're at it.


Title: Re: sound/video on embedded linux
Post by: jku on February 24, 2006, 08:57:07 pm
Thanks fellas, that'll get me going...


Title: Re: sound/video on embedded linux
Post by: meep-eep on February 24, 2006, 11:40:17 pm
Instead of using libogg and libvorbis, you can use libtremor, a fixed-point alternative, which is probably faster for this platform.


Title: Re: sound/video on embedded linux
Post by: jku on February 25, 2006, 11:32:03 am
Yeah, Tremor is what I currently have -- but I don't think I'll be keeping it: I believe the only way to use the larger content packages would be to use the external rs-mmc disk for storing it (even that would usable only for a small amount of people as Nokia ships only  a pitiful 64MB rs-mmc with the device), because of limited internal memory.


Title: Re: sound/video on embedded linux
Post by: jku on February 25, 2006, 08:42:27 pm
You should be able to remove Vorbis support by editing the files in src/sc2code/libs/sound/decoders; removing oggaud.* and removing the references to Ogg Vorbis in decoder.c ought to do the trick (I'm surprised there isn't a build configuration option for this).


You were correct. I have removed the dependency, and actually added a build option for it. I'll file a bug in bugzilla, and send a patch.

Quote
You may also want to remove .DUK video and audio support while you're at it.

Do you think I'd win anything except make the package smaller?


Title: Re: sound/video on embedded linux
Post by: Novus on February 25, 2006, 08:48:31 pm
Quote
Quote
You may also want to remove .DUK video and audio support while you're at it.

Do you think I'd win anything except make the package smaller?
Not really. I just figured you were removing features that require too much CPU power or memory to run.


Title: Re: sound/video on embedded linux
Post by: jku on February 27, 2006, 10:18:16 am
Quote
I just figured you were removing features that require too much CPU power or memory to run.

Sure. There are two additional things I'm thinking of:
1. Getting rid of external dependencies that are not part of the Nokia/maemo base installation is top priority (considering that Maemo is a debian-derivative, the dependency-handling on it is laughable -- there is no dependency handling for user installed software!).
2. I don't want to stray too far from UQM proper, at least not yet. I'd prefer changes that can be committed upstream...


Title: Re: sound/video on embedded linux
Post by: fossil on March 02, 2006, 09:10:25 pm
To answer your sound question, the original sound effects and MOD music files are mostly sampled at 8363 Hz (a couple are even sampled at 4181 and 2090 Hz, believe it or not). If this Nokia device can do playback at this frequency natively, you can save a lot of CPU time by not having to resample the audio. The current mixer resampling implementation is a floating-point one, and Nokia 770 does not have an FPU (if I am reading the specs right).  :-\   We are planing to refactor the mixer code some time in the future, and one of the goals is to get rid of floats in mixer resampling code.


Title: Re: sound/video on embedded linux
Post by: jku on March 02, 2006, 09:39:14 pm
Thanks, fossil.

Your spec-reading skills are fine, and I believe your suggestion is good -- although I cannot test that in the near future: I had to send my device to Nokia maintenance because of faulty wlan chip. The scratchbox dev. environment is pretty neat, but sound is obviously something that cannot be tested on it...