Currently the demuxers call their supported codec libraries directly and return decompressed frames instead of packets. This means a bit of duplicated code for Vorbis and Opus, and more in future once adding, say MP4 container support or other fun things.
Should decouple these, simplifying things in several ways:
classes can register themselves at runtime instead of using compile-time HAVE_OGVKIT_VORBIS_DECODER defs
easier to share common codec interfaces with multiple containers
in theory, could be easier to plug in new codecs for existing containers (where supportable)
Currently the demuxers call their supported codec libraries directly and return decompressed frames instead of packets. This means a bit of duplicated code for Vorbis and Opus, and more in future once adding, say MP4 container support or other fun things.
Should decouple these, simplifying things in several ways: