[Matroska-devel] New dshow splitter

Mike Matsnev mike at po.cs.msu.su
Tue Dec 7 22:08:22 CET 2004


I think it's time for more public testing of my new code, the
binaries are available at http://haali.cs.msu.ru/mkv/.new/
There are two mkx.dll avi.dll and slitter.ax, all of these
need to be registered. I've also prepared an installer that
does just that: MatroskaSplitter.exe. Since splitter IDs are
hardcoded in VSFilter, there is a new build of VSFilter with
new splitter support.

This is a complete rewrite from scratch to have better design
and better maintainability. DShow interfacing was completely
separated from actual file parsing via COM interfaces, so one
common DShow code can be used with many file formats. I've
implemented AVI support in one weekend using that framework as
a proof of concept. AVI splitter is not registered by default
but the DShow filter will open avi files, so you can play with it
in graphedit, or do something evil like
copy /b file1.mkv + file2.avi file3.mkv

Major new features:
* Multisegment files support, you can produce those by running
   copy /b file1.mkv + file2.mkv multiseg.mkv
* Files with multiple video tracks are supported, streams can
   be switched via tray menu.
* Pre/post chapter commands, framework is in place, but only
   one command is implemented so far: NextSegment is executed
   at the end of current segment.
* Internal stream switching with WMP9/10 support, can't be
   turned off due to the way it is implemented, so you'll need
   to use my tray icon or WMP :]
* Probably some other stuff that I forgot about.

Known issues:
* Switching from a segment with sound to a soundless one doesn't
* Switching some video stream formats results in a crash in
   ffdshow, e.g. mpeg4->huffyuv. I didn't try debugging this

I expect some minor bugs to show up, hopefully nothing major
will happen. I'd appreciate it if you try this new code and
report any problems and feature requests either to ML or to
me privately. Thanks in advance.


More information about the Matroska-devel mailing list