[Vorbis-dev] decoding vorbis bytes into floats

Andy Martin zippo227 at gmail.com
Thu Oct 3 11:11:33 PDT 2013


Thank you for the information about what libogg is. Oggdec sounds 
interesting, but I don't think I can integrate command line tools into 
my project. I won't be encoding the audio but rather receiving it from 
icecast stream where I only have control of the Kbps of the steram.

Seeking is not a concern. I want to be able to directly see the data and 
encode a buffered audio clip. I want to use that clip as input to a 
visualizer. That's why using something like BASS, which has a great 
icecast client built-in, won't be as useful to me.

Are there any more suggestions on the first steps of building my VS sln 
with libogg and libvorbis?

Best,
Andy S. Martin

www.guitarrpg.com  <http://www.guitarrpg.com>
M.S. Computer Science Game Development
University of Southern California '2013 Alumni

On 10/3/13 12:09 AM, Gunter Königsmann wrote:
> The last time I had I decode ogg the source code of oggdec did nearly 
> read like documentation. If I remember it right it basically ran a 
> batch of initialization functions from libogg and libvorbis (the first 
> three packets are the header containing the info that the file uses 
> the vorbis codec, the metadata and everything the vorbis codec needs 
> to know in order to to decode the data; Libogg's task is to divide the 
> steam into packets). After the decoder has been informed about the 
> header it can decide any packet libogg will output. You can even leave 
> out any number of packets or throw in a "end-of-file" packet followed 
> by a new header at any time.
>
> If you write the encoder as well there is one thing I would ask you to 
> ask: there is a so-called granulepos field in every packet telling how 
> much time has passed since the beginning of the steam to help with 
> seeking. The unit this information is given in is basically 
> irrelevant. It might be milliseconds, samples or something similar. 
> But it has to steadily increase all the time or else some players will 
> crash - or get lost when attempting to seek in the steam.
>
> Kind regards
>
> Gunter.
>
>
>
> Andy Martin <zippo227 at gmail.com> schrieb:
>
>     I would like to program a basic OGG decoder that takes in an array of
>     bytes (unsigned char *) and return an array of floats. Presumably I
>     could then pass these floats to be read as PCM data which can be
>     immediately interpreted as audio (by Unity3D). The starting point would
>     be the header of an icecast stream (I know I'm not in the icecast
>     mailing-list, but that is only the basic starting point). From then on,
>     I would be dumping raw ogg bytes into this function and returning
>     floats. I am working in the games industry using C++ and C# every day,
>     but I have less experience than I would like using open-source libraries.
>
>     Presently, I can get a continuous stream of bytes of OGG from an
>     asynchronous HttpWebRequest through C#. I want to pass those bytes into
>     the function that I'm describing. Shouldn't I be able to pass any random
>     sequence of bytes into this function and get some kind of float pattern
>     that can be read as PCM (thought it may sound awful if it is truly a
>     random array of bytes)?
>
>     For those interested, my starting point is a Windows8 machine with
>     Visual Studio, but I would eventually like to port the project to XCode.
>
>     As I read the Vorbis documentation, I find it very difficult to find a
>     place to start. What are the significant traits of the important
>     libraries, ogg and vorbis, and how do they work together? What are the
>     steps I need to follow, and where can I get more information than the
>     documentation has? I probably just need to chat with someone who really
>     knows what they're doing, but, the people I know used JUCE. They've used
>     the JUCE library to do something like this, but I would like to do a
>     straight-forward use of the open-source XIPH libraries.  There are many
>     warnings about not using the low-level API, and most of the links on
>     xiph.org  <http://xiph.org>  are for pre-existing ogg players instead of source code for
>     making your own player.
>
>     I really appreciate any help and am open to get on the group chat at
>     some point.
>     ------------------------------------------------------------------------
>
>     Vorbis-dev mailing list
>     Vorbis-dev at xiph.org
>     http://lists.xiph.org/mailman/listinfo/vorbis-dev
>
>
> -- 
> Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail 
> gesendet. 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/vorbis-dev/attachments/20131003/fe6ecfb6/attachment.htm 


More information about the Vorbis-dev mailing list