Friday, June 11, 2010

Forget the MCE Extender - just stream the tuner output.


A number of companies that used to make MCE Extenders have stopped making them - I can understand why...you cannot play DVD's from a central server and you cannot access MCE applications like Netflix, Hulu, etc.

My solution to this is to try use the features included with Windows in order to get what you need and just create the rest. Since ATI came out with their firmware upgrade for their cable card tuner it is now possible to play recorded content on other computers on your network (except of course premium content like HBO). Content like videos, pictures, recorded tv, etc. can also be accessed by firstly sharing the folders and then adding the shares to your libraries on other systems. All this leaves is live TV.

There is a solution out there from SiliconDust called HDHomeRun but that will only give you ATSC and Clear QAM - although they have announced a cablecard solution. I bought one of the 2 port devices to play with and it seems pretty decent except for the fact that I need to keep poking holes in my firewall so it can communicate with its driver.

Looking at what is available it becomes obvious that the only solution would be to develop my own tuner streaming solution. I thought about reverse engineering the tuner portion of the extender but that seemed like way to much effort.

Phase 1
I spent 3 months delving into the AVStream class in the WDK during this time I played around with the sample tuner that is included in the DDK hacked out a lot of code and added a lot more. And finally came up with my first alpha solution.

For this I have an application on the 'tuner server' (main MCE box) and a tuner driver on the client system. when you start up a TV application on the client the tuner driver is started which communicates with the server. after that all tune requests are passed to the server and the tuner stream is passed back to the client.

I have included a capture of a Windows 7 x86 session running in VMWare (x86 is faster to kernel debug than x64 with windbg). Media Center is running in the VM communicating with the server (console box) on the left of the screen. My other client box is my Dell XPS notebook running Win 7 x64.

I experiance very little tiling but that could be because I am running on a 1Gbps network. I also spent a lot of time optimizing the network code.
This concludes Phase 1 of the project Phase 2 will include support for multiple simultaneous client and cable card tuners. I am still waiting for my Ceton 4 port tuner which I ordered in April but seems to have been delayed until July.

Part two...

7 comments:

  1. This is great work and something many many people have been waiting for. Can't wait for phase 2.. or even phase 1 for that matter. Finally I can get rid of Media Portal. :)

    ReplyDelete
  2. Phase 2 is going strong - I support multiple QAM, ATSC and Analog cards. Cable Card is turning into a major issue as all access to any part of that system is via a protected environment.

    ReplyDelete
  3. I have concluded phase 2 and will post an update in the next day or so.

    ReplyDelete
  4. Are you going to make the software public Gustav? I'm sure many people would appreciate a free HD Homerun solution.

    ReplyDelete
  5. The software will definately become public, you can register for an alpha version. Whether it will be free is another matter. I might make a free limited version but I definately would like to get some sort of return for the amount of time I have put into it. I will not decide on the commercial aspect until I have completed a few more of the items on my wish list.

    ReplyDelete
  6. I'll look forward to your free version. :) I'm not sure how big a market there is for a commercial version because those who are willing to pay will probably already have dvblink...

    ReplyDelete
  7. My target market is not the home user but commercial i.e. a customer that needs to set up different groups of receivers that play back a certain channel. i.e. sports bar where different sections of the bar will all be tuned into the specific channel. It makes it easier for the owner to control each group of TV sets from a central console. The home edition will obviously not support this feature set but just share tuners from a server.

    ReplyDelete