[vorbis-dev] Vorbisfile changes/additions

Monty xiphmont at xiph.org
Thu Mar 6 14:39:15 PST 2003



Hi folks,

I've finished a round of extension and optimization of Vorbisfile.
I'm working on docs to the committed changes right now.  I'd
appreciate testing of new functionality and verifying old
functionality isn't broken.

Summary of changes:

General seeking cleanup; a number of boundary cases dealing with short
files and chained files got fixed in the process.  The bugs should
have been minor (positioning errors), but they were there.  Now
they're not.

Seeking optimization: When seeking within a single link, the seek
operation no longer dumps the decode setup, only the cross-frame
lapping state.  This means local seeking within a single link (or in
an unchained file) is 5-10x faster, depending on platform.

bitrate tracking fix; well, not really a fix, but an improvement in
accuracy after a seek.  No one should be relying on the instantaneous
bitrate indicator to mean anything authoritative, but some folks seem
to treat it that way anyway.

crosslapping API: this API doesn't do anything you couldn't do outside
the API, but as Vorbisfile has become popular for sample looping
engines and this should save those developers some work.  The basic
idea is to provide automatic sample lapping, when requested, when
seeking to a new point within a sample, or transitioning to a new
sample.  This works best when the samples are designed to include a
little extra data to seed the overlap and overlap cleanly, but the API
will extrapolate and smooth even hard edges if required.  It also
provides smoothed transitions between unrelated audio fragments.  No
more clicks, no more pops.  See the docs (which I might get into CVS
tonight) or if you're a hardy soul, read the source.

These changes required scattered work throughout libvorbis and
vorbisfile.  Aside from general 'beat on it!' testing (it passes my
unit tests, but that's not the same thing as having the World unleash
its fury), one change concerns me, and I'd like someone to test it
carefully: I've gone to using static window array data in libvorbis,
and these window arrays are exposed to libvorbisfile.  Win32 has given
us trouble in the past when doing this (although this time, it's being
exposed as a function call return, not as an extern).  Please let me
know if this breaks Windows .dll builds.

Thanks,

Monty

--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'vorbis-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Vorbis-dev mailing list