Red October

From wiki.jriver.com
Revision as of 19:53, 22 June 2011 by JimH (talk | contribs) (Created page with "DirectShow and Red October (Not the movie) Some of you may know that I'm the original employee at J. River. We publish J. River Media Center, one of several DirectShow capable …")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

DirectShow and Red October (Not the movie)

Some of you may know that I'm the original employee at J. River. We publish J. River Media Center, one of several DirectShow capable video players. I want to say a few words about our experience with DirectShow and some of you will no doubt be wondering why. I'll try to explain.

But let's start first with what I understand DirectShow to be. Then I'll go on to what I think it's weaknesses are, and eventually to our new solution.

Years ago, Microsoft launched DirectShow technology, a method of handling audio and video with what I'll call "interchangeable parts". Any player that was DS compatible could theoretically load and use any DS filters. In theory it offered a way to standardize processing and playback of media.

For the less technical, a "filter" is a piece of software that can be strung together with others to create a "graph", something like a chain of beads. At the beginning there may be a reader (to read the file), then a spltter (to separate audio from video), various decoders (to decompress the audio and video), and a renderer (to paint the picture on the screen).

Microsoft also devised a "merit" system to allow competing filters to nominate themselves for insertion in the graph. This is one of the big problems with DirectShow, in my opinion. It allows bad filters to be chosen instead of good filters, so it causes a lot of problems at playback time.

We've wrestled with this problem for several years. Each machine usually has a number of filters installed, and they often don't work well when the graph is built. Our solution has been a little lame, I admit. When a user had a problem, we suggested installing CCCP, a well known filter "pack" that included "good" versions of ffdshow, haali, and other filters. This often worked.

We also pointed users to an excellent DirectShow Playback Guide, written by one of our expert users, glynor. You can see what a wall of text it is here: http://wiki.jriver.com/index.php/DirectShow_Playback_Guide

Usually one of these two remedies worked, but not always.

So we began thinking about including our own filter pack and setting it up ourselves. About the same time, LAV and madVR came to our attention.

As a result, in the latest build of J. River Media Center, we now have a new DirectShow technology that we call Red October. It has these modes:

Red October Standard -- MC16 automatically downloads, installs, and configures known good versions of LAV Splitter, and ffdshow. We build the graph and don't allow anything else. This results in video playback that just works.

Red October HQ -- Same as above, but adding madVR as the renderer. This is more processor intensive, so it only works well on pretty good CPU's -- i5 or above.

For those who like to tinker, we added three advanced modes:

Red October Standard with additional filters -- Our base plus your additional filters.

Red October HQ with additional filters -- Our base plus yours again.

Windows Merit Based -- the same as the original Windows DirectShow selection.

In addition, Red October uses its own location and settings for all filters, and we "register" them ourselves, so there is no conflict with other players. Red October also ignores the Windows Merit system and it has a white list for additional good filters.

MC16 can now set a default that we know will work. Even a novice can now get the highest quality DirectShow playback without suffering the pain of DS configuration. And the DirectShow tweaker will still find room to play.

We're very grateful to nevcairiel, madshi, jmone, glynor, SamuriHL, and many others who helped guide this and upon whom we depend for their sage advice.