Tremor
Tremor is a fixed-point version of the Ogg Vorbis decoder for those platforms that can't do floating point math.
Platforms
ARM/Coldfire/MIPS CPUs
You will probably want to use the Tremor main branch. You can check it out here:
svn co http://svn.xiph.org/trunk/Tremor/
It contains some optimizations for ARM and the overall lowest computational complexity. It should run on most devices with a few hundred KB of codec RAM.
Texas Instruments TMS320C55x DSP Family
Download the generic lowmem source using Subversion. This is probably the version you want to start working with for a DSP, but maybe slower on normal CPUs.
svn co http://svn.xiph.org/branches/lowmem-branch/Tremor/
There is also a no-byte branch for platforms whose smallest data unit is larger than 8 bits.
Required / Suggested Changes to the code as downloaded:
- Roland Wintersteller's various fixes
See the mailing list entry
- Johannes Sandvall's performance improvements
See the mailing list entry or just download
- alloca removal
The TI compiler does not support this.
- misc compiler warning fixes
- hooks to TI DSPLIB functions cfft3216_NOSCALE and cbrev32
These are part of the TI DSPLIB which can be downloaded from the TI website.
- 64-bit math functions
- converting all ints assumed to be 32 bits to ogg_int32_t
Links
- Tremor Mailing List - lots of info here, but have to wade through a lot!