Add support for Xiph-style Vorbis media subtype and format


The splitter and source filters are not able to connect to the Vorbis decoder filter from Xiph.org. Apparently it uses a media subtype and format different from what is specified by the Matroska developers (that's what is used by the VOB2MKV filters).
If anyone has a description (or the source code itself) of what the Xiph Vorbis decoder expects on its input pin, or what the Xiph encoder advertises on its output pin, then please post here or send me email.
Note that the Xiph Vorbis decoder is able to connect to the Xiph OGV source filter.


matthewjheaney wrote Apr 11, 2010 at 12:49 AM

The source/splitter filters are now able to connect to the Xiph Ogg Vorbis decoder filter. That filter wants each of the 3 initial header packets to be sent as separate media samples, which we do. However, it doesn't like something about the media samples having actual audio payload. The filter crashes with divide-by-zero exceptions, because the frame size (among other things) doesn't get set to a non-zero value. Apparently the layout of audio frames in the MKV file doesn't match the format of frames expected by the decoder filter, and some decoder state isn't getting properly initialized. (I would have thought that everything would have been initialized after the decoder saw all 3 header packets, but maybe something else is going on.)

Someone intimately familiar with the Xiph Ogg Vorbis decoder filter should take a crack at determining why the VorbisDecoder state variables aren't being set to non-zero values. I was able to check out the Xiph sources from their svn repository, build on my machine, and step through their code (you'll also need to download the Windows SDK, and define the BASECLASSES environment to point to their location), but the code is rather complicated, and I must have missed something. I spent full a day getting the filters to connect, but it turned out to not be as simple as that.

In the meantime, FFmpeg can successfully decode the Vorbis audio delivered by the MKV source filters, so users will have at least that option for decoding Vorbis. It would be a pity if we couldn't get the Xiph filters to work too.

wrote Feb 14, 2013 at 6:02 PM