From MythTV Official Wiki
Revision as of 21:13, 28 April 2006 by Xris (talk | contribs)

Jump to: navigation, search

Google Summer of Code 2006

MythTV was selected as a mentoring organization for Google's Summer of Code 2006. The following are proposed projects from MythTV developers, though student write-ins are certainly encouraged if you've got better ideas. Just email the mythtv-dev list or contact Isaac if you have any questions.

These projects should all be fairly time consuming - we're looking for people that can dedicate the majority of their summer to MythTV. Development assistance will be available through email and IRC.

Proposed Projects

Settings Rework/Enhancements

Myth is.. configurable. Quite often, it's way too configurable. Pages upon pages of settings for the user to play with just get confusing. Simplifying the settings UI is a must. This is a two-part task. First, simple and advanced modes of configuration should be created, with the majority of the various options being hidden in simple mode. The second part of this project will be rewriting the underlying code to make the user interface more like the Scheduled Recordings interface, which is much easier to use than the current wizard-style settings UIs.

Automatic configuration

The initial configuration stage (mythtv-setup) could be made simpler though automatic tuner card detection and configuration. The setup process also requires configuration of IP addresses/ports/etc of the backend services, and this also could be made automatic through the use of zeroconf/random discovery service/whatnot.

UI rewrite

This project is part of a more extensive on-going development effort. Myth has a new UI backend (called libmythui), and everything is slowly being rewritten to use this. This new backend allows multiple 'painters' that do the actual drawing - OpenGL and Qt based painters have been written. Using the OpenGL painter, a more modern/advanced UI is possible. At the same time, the process of rewriting converting Myth's UI to this new backend will allow everything to be made more consistant. This migration to libmythui can be done in stages (down to single screens at a time), so a student working on this project could choose whatever sections of the existing UI presentation code they'd like to rewrite - a few plugins, some of the core UI code, etc.

  • Skills: C++, XML (the theme definitions)
  • Mentor: Isaac Richards
  • Backup Mentor:


One of the big complaints about MythTV is that people don't like how MythMusic works. Well, here's your chance to change that. This project will involve the design and implementation of a new UI for MythMusic. This includes making it possible to exit the player without stopping playback (a not that difficult task), and possibly supporting the existing 'mfd' module that used to be under development as a backend for media playback/ripping/burning/itunes support/etc.

MythWeather enhancements

MythWeather's been sort of dangling unmaintained for a while now. It'd be nice to enhance it in various ways. Split data retrieval out into separate scripts, so more than one source of weather data could be used. Download data periodically in the background, so data's always available. Support multiple locations. Additional data/map display. That sort of thing.

Port to Windows

There used to be a semi-working port of mythfrontend (playback portion of Myth) to Windows. It's gotten extremely stale since it was unmaintained, and no longer compiles, let alone works. So, this project idea is to fix up the port of the frontend, and also add support for TV Tuner devices on Windows - basically, port mythbackend (recording/scheduling part).

MythWeb UI Redesign (AJAX)

Users have asked for it, so we will oblige. MythWeb needs a complete UI overhaul to bring it up to date with the latest technologies. This project will include reworking and standardizing HTML/CSS page layouts, designing a new look-feel skin and upgrading the default (javascript-friendly) template set to use AJAX and dynamic content wherever possible.


This project will entail converting the nuvexport script from Perl to C++, creating a new program capable of interfacing natively with libavformat (and possibly transcode and mencoder) to export recorded programs in a variety of formats, including DVD backups/burning.