Friday, December 17, 2010

WtvWatcher: Year One Down, and On...

Version 1.0.0.45 / .46

So last week I had some time to post a new version of WtvWatcher. The update list below is pretty much point-for-point a list of the fixes and enhancements that came from the community feedback.
  • FIXED: Error codes 2 and 5
    Would occur when file was HD H.264 encoded, but not always...more a wtvconverter.exe issue, but it seems that after an update to the parameter mask, a few test recording are converting properly now.
     
  • FIXED: Starts converting show too early
    Updated process to listen for file changes, not just look at file modification date/time. Apparently, Media Center doesn't update the original file consistently throughout the recording process, but that's OK now because WtvWatcher sees all file I/O operations in the source location.
     
  • ADDED: Preference 'delete to recycle bin' after success
    For testing or diagnosing scenarios, when something on the system isn't working as expected. Much easier that waiting for another program to record! :)
     
  • ADDED: Preference 'temporary working directory'
    If you want to optimize WtvWatcher to split the file I/O read/write between physical drives, then when done converting, copy the resulting DVR-MS file back into the source location.
     
  • ADDED: Preference 'verbose logging' and 'view logs'
    For when something's not working and you need to see what's happening. Also sometimes in order for me to help people in CodePlex discussion threads, it helps to see how WtvWatcher is behaving.
     
  • UPDATED: Documentation and Tutorials
Wow, it doesn't look like alot, but I can tell you it was at least 8 hours of late-night geeking.

Stats / Growth

From the looks of it, I now receive around 300 source code downloads per month (or around 10 per day) from the CodePlex site, and 20-30 first-time installs of the click-once application from my website. I know it's not much, but it lets me know I have had some impact on the anonymous community of Media Center enthusiasts.

[Wishful Thinking]

Hey, you never know, maybe even people like Scott Hanselman or (my undeclared idol) Brian Beckman have seen it. I know, not realistic to think they watch enough TV to warrant commercial cutting, but a guy can wonder, is all.

However, dispite the anonymity the software ensures to users, getting constant positive feedback from the community of users I do have is indeed satisfying too. You don't have to be a name or wear a fancy hat to be a developer's friend.

The Next Leg

It was never supposed to be a regular maintenance thing for me, and I have even less time now that I'm going to be a new dad in March 2011, but I can't forsake the community completely. Come on.

The next ideas I have for WtvWatcher is to include more support for non "to DVR-MS" format. It's an old format, and to down-convert the 'new format' (which is now almost 3 years RTM) was always a 'hack'. It's now become more like saying:

we don't need these new fangled "phone" contraptions, we have the postal service...[gnash, gnash]. next thing you'll tell us common folk is that you can ask your car to tell you how to get somewhere. damn kids and their flying cars and robot servants. the robot eat all my medication and their arms are strong and i can't break free of their death grip. i just want to be under my afghan and watch my jerry lewis and walter chroncite before the clock chimes 8pm.

So yeah, this down-conversion thing is getting old for me.

However, there are quite a few things I really *don't* like about the new format (ahem, lackofframeworkfor.net-and-stupidnetworkcontentprotection), and lets not forget that as awesome as HD TV is, it's just another excuse for the networks to play antitrust and demigog over a new medium, leaving us enthusiasts in an oft lurch. H.264 is great and all, but update your damned utilities Microsoft!

If I had my way, all my content on my network would be MP3 and MPEG files. Every video device made since 2000 can decode these formats, and I'd rather have a seamless 10 foot experience over all of my content than have only HD on some of my content.

Drag-N-Drop Processing Pipeline

That being said, the next step is to allow WtvWatcher users to drag-n-drop 'processing blocks' onto each of 4 or 5 process step placeholders. Want to pre-process or post-process WTV files? Just inject the right blocks, and you're on your way. A few intelligent defaults for this 'pipeline' approach, and WtvWatcher will remain as easy to use as before whilst becoming more flexible and intuitive at the same time.

GraphEdit Integration

The more advanced community uses the Windows SDK utility 'GraphEdit' to fix muxing issues and diagnose output errors all the time. I've seen so many variants of this utility that the value is clear: WtvWatcher should be able to use a custom graph (or content translation wiring diagram) during both the decode and encode process. It should also be wicked easy to jump between fixing a graph and testing the edit back in WtvWatcher. If this were a feature, the community could use and share custom graphs to accomodate new formats and changes to content delivery faster than I could ever patch side-project software initiatives.

Enhanced Metadata Support

Currently, the 'processing rules' feature only works when certain media elements are correctly set on the original WTV file, which doesn't always happen in practice. More work should be done to fix this.

Also, and while this is no fault of WtvWatcher but rather Lifextender, after commercials are cut from the DVR-MS file, media file attributes such as thumbnail and recompiled program length are often missing. I'm sure that WtvWatcher could retain the original WTV metadata, wait around for the commercials to be cut from the DVR-MS file by some other program, then re-apply them after post-processing occurs.

Yet another concession I make to older format support on behalf of the bleating community (and my wife too)!

Feedback / Donation

Really the best thing you can do to better WtvWatcher is to provide your support via feedback and donations. The feedback lets me know what's important and what really needs to be fixed. The donations are a way to let me know you care enough and that I should get off my arse and respect that you gave some of your hard earned money.

While it's on CodePlex for educational and open source reasons, it's such a small project that more than one contributing developer and the potential for code branching...frankly...wearies me. No need to over complicate things is all I'm sayin', but I do appreciate the offers for sure.

My initial goal was to A) fix a small problem I had with my home entertainment, and B) post an open source project to ascertain the value of free community feedback. Both goals were reached long ago, and it's been a great learning experience for me to maintain such a popular niche software app. The community has been, beyond my wildest expectations, incredibly encouraging and patient with updates.

Best wishes to the community and good holiday cheers,

Paul