Matroska Logo

Shell Extension and TCMP CDL

by Jory 'jcsston' Stone

Download Matroska Shell Extension v2.5
Download Matroska TCMP CDL v1.7 binary


Applies to both the Shell Ext(ension) and Matroska CDL

Besides displaying all sorts of infomation about Matroska files, the Matroska Shell Extension can change the Display Size(aka Aspect Ratio), Track Language, and allows editing of all Matroska Tags.

The Matroska Shell extension also has support for the display of attachments Images of the types BMP, GIF, ICO, TGA, PCX, WBMP, WMF, JPEG, PNG, TIFF, JBIG, PNM, PPM, PGM, RAS, and JPEG-2000 will be decoded (thanks to CxImage) and shown inside the attachment tab as well as Unicode/UTF-8/ANSI text files.

Applies to the Shell Ext(ension) only

The Matroska Shell extension handles thumbnails in Windows Explorer for MKV, MKA, and MKS files. If the file has attached images the first one starting with the name of cover*.* will be used as a thumbnail. If there are no attachment named cover*.* it will use the last attached image. And if the file doesn't have any attached images, DShow will be used to extract a frame of the video located a customizable time (ex. 0 seconds into the movie, or 10 seconds into the movie). There are two different DShow methods to choose from, Internal Renderer (prefered) and IMediaDet (the same renderer the AVI thumbnail handler uses).

Finally you can have tooltips for Matroska files. The tooltips can be long and have very basic info about each track or short with only the count of each track type.

Screen shots

Matroska Info Tab

Matroska Attachment Tab

Matroska Chapters Tab

Matroska Tag Tab

Matroska Context Menus

Matroska Thumbnails

OS Requirements for Shell Extension features
Prop PageWindows 98
Tool tipsWindows 98
Context MenusWindows 98
ThumbnailsWindows 2000
ColumnsWindows 2000

FAQ for the Shell Extension and TCMP Matroska CDL

  • Question: How can I upgrade the Matroska Shell Extension, without restarting the system?
  • The Matroska Shell Extension is just about always loaded with Windows Explorer if it is installed. This makes it a pain to upgrade or uninstall without rebooting. If you want to update the Shell Extension without having to uninstall, reboot and then install you can try this.
    • First, startup the installer for the new version, wait at the first screen.
    • To be safe open up a command prompt window and leave it open.
    • Now you have to close all explorer windows, press Ctrl-Atl-Delete and kill all the explorer.exe processes.
    • Once you have done that finish the install.
    • If your desktop or taskbar doesn't show back up use the command prompt you opened to start explorer back up. Type in 'explorer' and press enter.
    These steps can also be used to uninstall the Shell Extension, instead of leaving the installer window open at the first screen leave the uninstaller at the first screen.
  • Question: Why is there a dummy track detected by matroska shell extension?
  • The 'dummy' track is used for Global Tags, which are tags that don't apply to one track but the whole file.
  • Question: Why does this dialog show up when I click View Attachment? "This file *.* Is not handled by this Extension. Run external program? (equal to double-clicking file)"
  • I don't handle the attachment directly, instead I use an external program (a .exe is an external program). Which is a security risk. Currently I handle .txt, .avs, and most image types internally.
  • Question: What mime-type do I choose for the attachment or What mime-types does the Shell Ext support?
  • A mime-type is like the file extension, it says what type the file data is. For example for a jpg you would select image/jpeg when muxing. Look here for a list of mime-types. If you are not sure what mime-type to use "application/octet-stream" is a safe one to use.

    Developers

    Download Matroska Shell Extension+TCMP CDL source code or you can get the latest from the Matroska CVS, module: MatroskaUtils.
    You will need libebml, libmatroska, CxImage (if you want image decoding support) in the CxImage you have to change the function DrawText to DrawTextOnImage due to Unicode/MBCS define conflicts (it was becoming DrawTextW), The DirectX SDK and Baseclasses to compile thumbnail support, unicows lib (if you want to compile Unicode builds for Win9x)