Recording over 1394 (Firewire) in Media Center

There has been some recent effort to pry open the 1394 interface in various STBs (set-top boxes), most notably that of timmmoore's STB package that goes to extraordinary lengths to hook into Media Center's experience.  The state of the world today, at least with Media Center, is that the "outside looking in" hooks of Tim's package are the only way to get that HD content off of digital cable and into Media Center.

Here's how his package works, in a nutshell.  You install a couple of drivers that provide a software interface to the various commands you might expect to be available from an STB: channel changing, power toggle, etc.  An application then runs in the notification area, or tray, and acts as an intermediary between Media Center and the STB drivers.  When Media Center says "Change channel to 54", MyTray (Tim's tray application) listens in via a "hook" into Media Center and sends the channel-change command to the STB.  When Media Center starts a recording, another hook lets MyTray know that's happened and MyTray sends a "start streaming video over 1394" command to the STB.  When Media Center stops the recording, a similar event happens.

Physically, you connect your computer with the STB by plugging in a IEEE.1394 (Firewire) cable into each.  If you have two STBs, you can daisy-chain them together.  The traditional "IR" blaster for each STB is removed from the receiver so that it does not interfere with the commands sent over the 1394 connection.

There are a couple of significant downsides to doing it this way:

  • It's a lot harder to hook in from outside Media Center and try to figure out when channels are changing, recordings are starting or stopping, and in multi-tuner scenarios, which tuner/STB to use than it would be if Media Center could just treat the STB as a virtual tuner.
  • You still need an analog tuner for each STB you need to control.  This may seem odd, but it's part of the reason this works.  From Media Center's point of reference, it is still managing all of the recording and channel changing.  The fact that the actual channel change is triggered by another application is unknown and unknowable within Media Center.
  • Since Media Center is still recording over the analog tuners, you end up with two copies of the same program.  MyTray can be set to clean up the Media Center version once it knows its recording completed successfully (e.g. no 5C protection from the STB prevented the recording), but you still churn the disk more (2x more for non-HD shows).
  • Premium content like HBO is likely protected by the STB by the 5C standard, which MyTray does not support.  Nor can it without obtaining a 5C certificate, which are pretty hard to get.  The sticky parts for most interested parties are the unlimited liability clause you have to sign, and the certification process itself, which I hear is stringent.
  • MyTray is the product of a single developer, and one person alone cannot bring to bear the necessary development, testing, and packaging resources that bring a high polish to a product.  A common saying that applies here is "90% of the work is in the last 10% of the project".  Tim did a great job and some impressive detective work getting the app where it is, but getting that "shipping product" quality is a hard job to do all by yourself, working in your spare time.

I am personally using this at home right now, despite the downsides.  The fact that I am willing to do this probably means I'm not alone, and in the few informal hallway conversations I've had about it there's a lot of interest in getting this sort of thing done natively in Media Center.  There's not matching excitement about funding the cost of doing it, but there seldom is, when it comes down to it.

As Media Center becomes the default SKU for OEMs shipping Windows and our user base grows, there is a tremendous downward pressure on the unit cost of the machines.  The first target for downsizing seems to be the tuners, since a fair number of those new Media Centers are being sold as "Tuner Ready" instead of "Tuners Inside".   In my humble opinion, implementing a 1394 recording solution is the single best way to get broad market appeal while keeping hardware costs low.  Everybody wins: we sell our Windows licenses, OEMs move more units, customers get reliable, scalable SD & HD recording, and the cable companies get their $10 a month from renting their STBs.

Consumers are used to paying the fee, and I think they would continue to do so.  There's been a market for leasing otherwise expensive equipment for many years, and there's no reason to think that will change soon.  When faced with a decision between $10 a month (or $20 for two STBs), or buying a $250 tuner (or two), a lot of people go for the monthly fee.  After all, it takes over 2 years to amortize that, and with technology that seems like a good bet to me.  Being on the bleeding edge is more comfortable if you can stay there on a lease. ^_^

Which brings me to the true point of my post: I want to hear how much this feature is wanted in the user community.  Is it only wanted by the technically savvy, or do "average" users want it?  I really want it, and I don't want this relegated to the "power user" or "enthusiast" bin, because that will result in, at most, a power toy implementation.  If we can bring a full feature team to bear on this, I bet we could really make our users happy.

Just think, you could have everything Media Center gives you, plus VOD support (including Pay-Per-View, integrated into Media Center), and HDTV over digital cable.  If I'm not mistaken, this could easily expand into satellite STBs, too, if they don't already support streaming over 1394.

I'm going to get back to tinkering with the Network Provider and 1394 tuner classdriver code some more... I'm all worked up with excitement now. ^_^