[Tremor] RFC: Tremor API changes
Timothy B. Terriberry
tterribe at xiph.org
Mon Aug 30 10:34:18 PDT 2010
I'd like to propose a couple of Tremor API changes, and wanted to
solicit feedback from the list. The context of all of this is the recent
work to integrate Tremor into fennec, Mozilla's mobile browser:
https://bugzilla.mozilla.org/show_bug.cgi?id=511348
1) Remove the extra (third) argument from vorbis_synthesis() and replace
it with a separate function (e.g., vorbis_synthesis_nodecode()).
This change makes the API more like that of libvorbis, and reduces the
number of #ifdef's required for programs that want to switch between
both depending on the platform. It shouldn't affect anyone who uses the
libvorbisfile API, only those who use the libvorbis-equivalent API
directly. This would be applied to all branches.
2) Remove the internal libogg2 implementation and use libogg on trunk.
This has the same goal as 1) (easier switching between Tremor and
libvorbis), but I expect it to be more controversial. While the internal
libogg2 implementation is fine when Tremor is used by itself, it plays
less nicely when one wants to use other codecs (e.g., Theora), and
conflicts with libogg in both API and ABI. Once upon a time, we planned
to release an actual libogg2 with a separate namespace for the new
constructs and that also implemented the original libogg API (via
wrappers). However, this never actually happened, and there was never
much demand for it. I think the easier path now is to make this change
on trunk, and let the lowmem-branch (and lowmem-no-byte branch) continue
to use its internal libogg2 implementation, as those are likely the
users who would actually care about the reduced memory usage the
zero-copy API of libogg2 provides.
More information about the Tremor
mailing list