Pumpkin Seed HQ
Saturday, 13. January 2007

Peter Gutmanns Cost Analysis of Microsoft Vista only scratches the surface of the whole problem of content capture and handling. A key problematic piece in this whole puzzle is a technology called DirectShow. Microsoft contracted Geraint Davies several years ago to create a component based media streaming system. It is really well designed, it has its kinks, but works sufficiently reliable. However it aged and seems to be abandoned now. Microsoft also disguised its existence with shuffling it around various times with a recent move out of DirectX into the Platform SDK. The developer library apparently also doesn't work with Visual Studio 2005 unless you are a black belt C/C++ programmer patching your way through the headers.

It seems strange to hide a good piece of software from the user and the developer one would think. But if you know the inner workings of it you realize it is not random nor is DirectShow a forgotten gem which needs to be rediscovered.

With DirectShow you can extend the pipeline with filters as you like. Projects like ffdshow demonstrate how you can actually use an excellent open source codec easily within the otherwise proprietary DirectShow pipeline. Another major problem is that you are able to intercept running pipelines with a tool called GraphEdit. This allows you to hook into a running pipeline (taking granted it will be announced in the so called ROT - but you can force it actually) and add filters and tee in order to see whats going on there.

So why I bring this up - it allows you to actually get raw access your preciouuuusss (sorry I couldn't resist) "premium" content you most probably paid with your first born and your own soul. DirectShow can't handle DRM and therefore publisher aren't really keen on it and desparetely waiting for Vista.

A glimpse in the documentation for the successor Windows Media Foundation reveals that it will solve all of these problems for Microsoftyou and you will never be bothered with the choice of having another copy or able to otherwise reuse your content.

A second glimpse, more deeply makes you aware that Microsoft doesn't want you to know how it works and how you can create components for it. And they also provide you a nice explanation (my comments in bold):

  • The pipeline in DirectShow tends to be static. Implementing dynamic graphs and major format changes is a complex task.Half Bogus: nice try, this only is true for the current state of DirectShow - if anybody would have spent a bit of time on it also could do dynamic graphs
  • The threading model for DirectShow filters is complex and requires a thorough understanding to implement correctly.Bogus: kids don't play with DirectShow - only grown up educated people who are willing to read a documentation
  • Filters cannot be used easily outside of a DirectShow graph, which ties them to the DirectShow pipeline. Utter bogus: Who expects a DirectShow component to be used outside of the filtergraph? Do you fly with your bicycle?
  • DirectShow does not readily support protected content.The only and real issue

Slightly lower in the list we have a better overview (from here with comments):

Feature
group
Feature Media
Foundation
DirectShow
Basic functionality Audio and video rendering Yes Yes
  Event notification Yes Yes
  Device enumeration No Yes Crippled (prevent abitrary capture components to be selected)
  Component enumeration Yes Yes
  Synchronization to reference clock Yes Yes
  Seeking Yes Yes
  Improved stress resilience Yes No Improvement, however I rarely seen an unresponsive DirectShow pipeline
Content protection Component validation Yes No Crippled - preventing components like ffdshow within a Media Foundation graph
  Content protection policy negotiation Yes No Crippled - content protection policies could be implemented in the filters
  Interoperability between content protection technologies Yes No Crippled - expect to sign an NDA and several other documents before you will be able to hook into the content protection - basically this is only for the big boys
  Protection against kernel-mode and user-mode threats Yes No Improvement: some weired DirectShow components could bring down a whole system
  Component revocation and renewal Yes No Crippled - you can only add components that behave - Microsoft will decide for you
  Video output protection management Yes Yes
Media tasks Audio capture No Yes Crippled: You dare to capture audio? RIAA on your doorstep
  Video capture No Yes Crippled: You dare to capture video? See audio and add the guys from Paramount and Co.
  Video editing No Yes Crippled: Mash Up with your own funky software? Forget it! Windows Movie Maker Rulez!
  DVD playback and navigation No Yes Crippled - Evil DVDs - that where the big boys loosing all their money
  MPEG-2 support No Yes Crippled - Dead old tech isn't it. Bloody DVDs
  ASF support No Yes Crippled - Fortunately!
  TV technologies No Yes Crippled - Who needs TV anyway?
  Stream buffer engine No Yes Crippled - streaming video probably later only with WMV
  Encoder API No Yes Crippled - cross coding anybody?
Video renderer Substream mixing using per-pixel or planar alpha blending Yes Yes
  Customizable video composition No Yes Crippled - you dare to touch the preciouuus premium pixels?
  Support for custom presenters Yes Yes
  Windowless rendering Yes Yes
  Multimonitor support Yes Yes
  DXVA Yes Yes
  DirectDraw exclusive mode Yes Yes
  Backward compatibility with existing applications Yes Yes
  Accurate frame stepping Yes Yes
  Alpha blending of image data Yes Yes
  Glitch resilience Yes No Improvement
  Enhanced video fidelity Yes No Improvement (Precious!)
  Enhanced content protection robustness Yes No Har har har!
  Standalone use Yes No Riding bicycles through the air
  Standalone mixing component Yes No dito
Transforms (MFT or DMO) Synchronous data processing Yes Yes Improvement
  Simple programming model Yes Yes
  Standalone use Yes Yes
  Multiple inputs and multiple outputs Yes Yes
  Dynamic number of streams Yes No Improvement
  Access to sample-level metadata Yes No Improvement
  In-place processing Yes Yes
  Dynamic format changes Yes No Improvement
  Quality adjustment Yes No Improvement (Precious on VGA aint no good)
  Rate change Yes No Improvement

Online for 8202 days
Last update: 6/8/11, 1:03 PM
status
Youre not logged in ... Login

recent updates
Pas(s)t! As some people asked
- last year July I pitched the tent of my...
by retrakker (6/7/11, 9:46 AM)
RoundBox Webmail If your workplace
or personal webmail sucks - try RoundBox.
by retrakker (10/7/09, 12:10 PM)
New CX Economy Seats Well,
I was forced to be mostly on OneWorld for the...
by retrakker (9/21/09, 1:32 AM)
Na Herr Doktor ... Zum
Glück darf ich mit meinem PhD in Deutschland (und nur...
by retrakker (8/23/09, 9:00 PM)
Towards a consistent Linux ABI
The Linux ABI Checker seems like a great tool. Ever...
by retrakker (8/21/09, 11:44 AM)
Built-In Slowification people don't realize
how hindering all these automatic and uncontrollable functions in devices...
by retrakker (8/20/09, 8:32 AM)
SIGPIPE 13 by Allan Odgaard
of TextMate While working on the successor to Textmate 1.5...
by retrakker (8/19/09, 9:02 PM)

RSS Feed

Made with Antville
Helma Object Publisher
Site Meter