Dead Penguin - design principles
Dead Penguin - design principles
because if you don’t have principles, how will you break them?
1.It’s for watching the TV and DVD’s
For me, the biggest problem with other Media Centre’s is that they try to do too much, or that they are built to cover stored media and then they get Live TV capabilities bolted on.
Dead Penguin should be designed with TV use as a clear goal, this means worrying about things like channel change times, quality of the picture, ease of use for regular TV related activities, fully functional “Red Button” (MHEG-5), working subtitles, support for multiple audio streams etc, etc.
These are not added functions, these are core.
Also, DVD playing. This isn’t just about playing a VOB file, this means full support for menus, subtitles, proper menu highlighting, support for multiple audio streams and angles.
2.It needs to be able to be used by non-technical people
When you go out and buy your £50 DVB-T set-top-box you don’t need to know how to write shell scripts, and nor should you to use this. Everything needs to be simple and intuitive, the best example I’ve seen of a relatively complex STB that works well and people understand is Sky+. All the functions are available quickly and easily via the remote, default behaviours need to be what most people will want.
Some functionality may need to be sacrificed if a sensible way of presenting it to the user can’t be found.
3.It doesn’t need to work on everything
One of the great challenges with doing something like this is that you tie yourself in knots trying to keep it generic enough that it will run in all situations (with all pieces of hardware, all connectivity options etc.) I have no problem with severely limiting the target environment ... for example: only digital TV’s (DVI or HDMI) since this *may* solve some of the overscan variety issues, or must be an Nvidia graphics solution (if that gives us some significant benefit, like CUDA) etc. At the moment it’s still very generic, but the devil is in the detail.
4.It needs to run on relatively low cost target hardware
There are some great choices for media centre like hardware platforms, some of these devices are very compact and make use of things like integrated graphics ... ideally we should be able to make full use of this and not require expensive add-ons to get it to work.
Balancing things between the GPU and CPU will be crucial ... for HD on Linux this may be a problem in the early days ... we may have to live with SD content to start with.
5.It needs to be as cross-platform capable as possible
This is really a nice-to-have for my personal development, but it’s actually quite nice being able to demonstrate the exact same codebase (with only two ifdefs) running on both Linux and OSX. In theory most of the code would work fine on Windows as well, but I really don’t care about that :-)