splitting Ogg Vorbis file

Timur Elzhov <[email protected]>
Newsgroups gmane.comp.multimedia.ogg.vorbis.general
Message-ID <[email protected]>
Hi there,

in fact, my purpose is to write tool which will allow one to split ogg
file with vorbis audio *and* theora video codecs, but at first I'd
like to understand how the splitting of Ogg Vorbis stream works. So I
looked at existing tools that split Ogg Vorbis audio files, i.e.
`vcut' utility in vorbis-tools package, and Ogg plugin from
`libmp3splt', but I found that engine code is pretty the same. The one
of the core functions of `vcut' source starts with the comment:

/* Write the first stream to output file until we get to the appropriate
 * cut point.
 *
 * We need to do the following:
 *   - Adjust the end of the stream to note the new end of stream.
 *   - Change the final granulepos to be the cutpoint value, so that we don't
 *     decode the extra data past this.
 *   - Save the final two packets in the stream to temporary buffers.
 *     These two packets then become the first two packets in the 2nd stream
 *     (we need two packets because of the overlap-add nature of vorbis).
      ...
 */

So my questions are: what does "overlap-add nature of vorbis" means?
Why should I copy even two last packets from first fragment of Vorbis
file to the second one? Why I can't finish first fragment with n-th
packet, and just start next fragment with new (n + 1)th packet? Say, I
don't want to break any vorbis packet,  don't want to cut vorbis file
at *exactly* e.g. 5000 samples, and breaking stream at nearest
packet's boundary is okay for me.

Much thanks in advance!

--
WBR,
Timur
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.