Hi, I am trying to find the specs for ogg vorbis but cannot find a complete spec online, I need to know the format of the headers and what to look for in order to sync, read, write, and manipulate the format easily with some functions. I know there are some examples of the code within the ogg vorbis dev tools and there is a fileogg library that is mentioned but I have not seen this elsewhere. I don't want to decode or anything but I want to for instance be able to seek within the file and do some changes on the headr info or within the audio compressed data packet. I hope someone can point me to some useful things, thanks for your time, Many thanks, Luis -- ------------------------------------------------------- -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/vorbis/attachments/20060304/d95f92ab/attachment.html
On Sat, Mar 04, 2006 at 06:42:39PM -0500, Luis Cordova wrote:> I am trying to find the specs for ogg vorbis but cannot find a complete spec > online, I need to know the format of the headers and what to look for in > order to sync, read, write, and manipulate the format easily with some > functions.The specification for the Vorbis bitstream is available at http://xiph.org/vorbis/doc/Vorbis_I_spec.html see section 4.2 for a description of the headers. Vorbis is typically embedded in the Ogg container format when stored on disk and transferred over http. See http://xiph.org/ogg/doc/ for documentation of this format, particularly the "bitstream overview" and "framing" documents. You will have to understand Ogg and either implement a subset of it or use libogg to get at the actual vorbis headers. Feel free to ask if you any more specific questions! Hope that helps, -r
Dear Ralph, X Group, sorry for bein so hesitant to answer your email after you have been responding to me very kindly. Basically, what I want to do is to have a function that seeks for the header of a page within an ogg vorbis file such that it returns the header basic info and absolute position in number of bytes telling where the read pointer is. Notice that there are functions like ov_read that are too high level and return other things on pcm that really are not actual positions within the file. There is ov_raw_seek however this one I have to put the offset so it is kind of the inverse problem and thus not useful here. I am sure there is that capability within the libs ogg and vorbis, however, the "layered" way this has been laid out makes this difficult because there is no clean cut access to this functionality. Could you please hint me or point me to something I can find useful? many thanks, Luis -- ------------------------------------------------------- -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.xiph.org/pipermail/vorbis/attachments/20060308/7b28b1a9/attachment.htm
On Wed, Mar 08, 2006 at 08:30:13AM -0500, Luis Cordova wrote:> Basically, what I want to do is to have a function that seeks for the header > of a page within an ogg vorbis file such that it returns the header basic > info and absolute position in number of bytes telling where the read pointer > is. > > Notice that there are functions like ov_read that are too high level and > return other things on pcm that really are not actual positions within the > file. There is ov_raw_seek however this one I have to put the offset so it > is kind of the inverse problem and thus not useful here.Vorbisfile is a convenience library built on top of the layer you want: libogg. It has functions to do the things you describe. There is both libogg documentation at xiph.org, and you may use vorbisfile and decoder_example in the libvorbis code as examples of using libogg in practice. Monty