SparkFun Forums 

Where electronics enthusiasts find answers.

Have a good idea for a new product for SFE or Olimex? Let us know!
By Owen
#9051
I was wondering if SparkFun could carry a Vorbis decoder chip to compliment it's MP3 offering? I am working on a digital radio system and thusly need a Vorbis chip. If you dont know of any, do you know of any code for one of your Microprocessors which supports this? Bear in mind that this is a commerical-style radio broadcast system, IE Always streaming, not On demand so it would need to be able to pickup mid stream :wink:

And its always best if it does buffering itself! :
By daemondust
#9059
I don't know of any Vorbis decoder chips being produced. http://wiki.xiph.org/index.php/VorbisHardware has a list of a few chips, but none of them seem to be in production.

You can't pick up a Vorbis stream partway through. You need information in the header before you can begin decoding audio. Most streaming servers get around this by sending the header packet at the start of any new connection.

What kind of micro are you expecting to decode this on? You might be able to get away with 50 MIPS (with a LOT of code tuning and limited bitrates), but 100-200 is more reasonable. I don't think any that SparkFun offers would be able to do this.

You can find Tremor, a fixed-point, low memory, branch of the reference Vorbis decoder at http://wiki.xiph.org/index.php/Tremor. It's geared to the TMS320C55x DSP, but should be portable to other DSP's.

http://oggonachip.sourceforge.net/ might be of interest to you as well. It's a Vorbis decoder meant to be run on a FPGA. I don't know your power, price, and volume requirements, but this might be an option to you.
By Owen
#9077
Hi - The streaming protocol Im gonna use picks out the next-header tag from the IceCast stream and pops that in it's own packet's headers, so I can start playing when I buffer up enough from the header ;) I presume that will work?

Im not too bothered about the hardware ATM. Yes, cheaper is better, but im after high bitrates anyway (Arround 128kbps) so thats kinda nullified

Is it actually possible to pickup a Vorbis stream if the header is found and it is started from there? That is essential!