From MythTV Official Wiki
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 the proposed projects from the MythTV developers, all of which were accepted and will have students working on them during the summer.

We received over 100 applications - many thanks to everyone who applied. Unfortunately, we could only accept 10.

Accepted 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.

  • Student: Justin Hunt
  • Mentor: Daniel Kristjansson
  • Backup Mentor:

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.


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).

  • Student: Michael Woods
  • Mentor: Daniel Kristjansson
  • Backup Mentor:

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. Please include links to some sample web pages you've done, preferably ones that demonstrate knowledge of AJAX, Javascript DOM, CSS, etc.


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.

MythCommFlag Enhancements

This project will involve adding several enhancements to MythTV's commercial flagger. Part of the project will be giving the commercial flagger the ability to run in a multithreaded mode so that it can benefit from dual-core or SMP servers. Each thread would operate on a section of the recording and then when all sections have been analyzed, the flagger would consolidate the data and generate the commercial skip list. The other part of the project involves adding several new ways to detect commercials. New detection methods would include the following:

  • CC/Teletext detection using a dictionary of phrases
  • Audio analysis looking for periods of silence or sections with a higher perceived volume
  • detection of cross-fades which are used in place of blank frames sometimes
  • detection of repeating still frames which are sometimes used in place of blank frames between commercials and show material

The project is not limited to just this list, if the applicant can come up with any other ways to improve the accuracy or speed of the commercial flagger, those may be approved and accepted as part of the project.

Make Myth Multi-user

This project involves making Myth integrate better into a multi-user environment. A couple examples of this are multiple users in a family where the parents want to control what actions their kids may perform, and multiple users sharing a house that want to make sure they don't delete each others recordings. Restrictions would be set on a per-user basis, controlling things such as editing recording schedules, deleting recordings, ratings limits, access to setup menus, access to plugins, etc.. Other per-user controls would be things like restricting a user to view just their own personal recordings in their named Recording Group, ability to view their own recordings and Shared recordings, or ability to view all recordings. A similar setting would indicate which scheduled recordings a user could edit. These are just a few of the things that would need to be modified to make Myth function better when multiple users are involved. The default for Myth would be to have a single all-powerful user. Unless someone creates additional users within Myth, the program would continue to function as it does now.

  • Student: Anastasiya Soboleva
  • Mentor: Daniel Kristjansson
  • Backup Mentor: