Hi, I've started working on libogg2 support in liboggz and Tremor support in libfishsound. I'm running into some problems with namespace clashes. Specifically, each of libogg, libogg2 and libvorbisidec (Tremor) define conflicting ogg_* symbols and declare incompatible ogg_* types in their headers. While I understand that a dedicated Ogg Vorbis decoder would only need to use one of these libraries, that can't always be guaranteed in general media frameworks. Consider two situations: * a media framework that separates demux and decode. A conflict occurs when using a generic ogg library (libogg or libogg2) in the demux, and libvorbisidec in the decode. * an application that would like to use both libogg+speex and Tremor runs into similar conflicts between libogg and Tremor. I'm sure I'm not the only person here who would like to use integer-only libspeex-1.1 and libvorbisidec in the same application. This is a general namespace conflict affecting existing applications that use ogg_* interfaces. Two possible solutions: 1. use different namespaces for each of these three libraries This has the disadvantage of requiring changes to application code that uses libogg2 or libvorbisidec, but these situations could mostly be handled by compatibility headers. 2. remove ogg_*() handling from libvorbisidec (ie. have it use the existing libogg2 instead), and make libogg2 backwards compatible with libogg. While the use of non-reference-counted buffers is obviously undesirable, breaking shit is worse, and the existence of a migration path would encourage use of the reference-counted interfaces. Please consider :) Conrad.