# MythTV

MythTV es un conjunto de aplicaciones que intenta convertir a una computadora personal con el hardware adecuado en un Grabador de video digital con el cual se permite grabar programas de televisión en un disco duro para su visualización. Actualmente esta aplicación llega más lejos, convirtiendo la computadora en un verdadero MediaCenter con el que se puede jugar, navegar, reproducir vídeos, escuchar música y mucho más, todo ello utilizando un sencillo mando a distancia, sin necesidad de teclado ni ratón.
MythTV es una aplicación de software libre, con licencia GNU/GPL.

## Historia

MythTV comenzó como un proyecto de creación de software de fuentes abiertas en 2002. Su autor es Isaac Richards. Tal y como versa el sitio Web del proyecto, sus motivaciones fueron:

## Desarrollo

Como otros muchos proyectos en el mundo del software libre, el proyecto MythTV se caracteriza por un desarrollo estilo Bazar descrito por Eric S. Raymond en "La catedral y el bazar". Donde algunas de las características que describen este estilo de proyecto usadas por MythTV son:
* "Todos los trabajos buenos en software comienzan tratando de paliar un problema personal del que los programa."
* "Tratar a tus usuarios como colaboradores es el camino menos complicado para mejorar con rapidez y depurar eficazmente un programa."
* "Lánzalo pronto. Lánzalo a menudo. Y escucha a tus usuarios."
* "Dada una base lo suficientemente amplia de probadores y colaboradores, casi todos los problemas se identificarán con rapidez y su solución será obvia para alguien."
Los proyectos al estilo bazar son, sin duda, uno de los más altruistas desde un punto de vista ético, ya que se realizan sin apoyo financiero y con el puro voluntariado. La motivación principal de los colaboradores de este tipo de proyectos es pensar que el software libre es un bien común del que todos se pueden beneficiar.
Para el desarrollo del proyecto se utiliza el sistema de control de versiones subversion para organizar el código fuente. Para la comunicación entre los diferentes desarrolladores se dispone de una lista de correo y una serie de wikis. Finalmente mencionar que los usuarios además de numerosas páginas Web sobre MythTV también disponen de wikis y listas de correo.

## Características

La aplicación MythTV posee numerosos temas que permiten modificar su apariencia. Para obtener todas las funcionalidades que esta aplicación nos proporciona es necesario cumplir algunos requisitos básicos de dependencias para su instalación, además de configurar los plugins que nos proporcionan las diferentes características. Entre las funcionalidades más relevantes cuenta:
* Arquitectura:
** MythTV posee una arquitectura cliente-servidor, permitiendo múltiples máquinas clientes conectadas remotamente a uno a varios servidores. Es posible utilizar una única máquina como cliente y servidor.
* TV
** Pausa y rebobinado del programa en emisión (live-tv).
** Grabación simultánea de varios canales (requiere varias tarjetas sintonizadoras).
** Codificación en MPEG-4 y MPEG-2, tanto por hardware como por software.
** Detecta y elimina la publicidad.
** Guía de programación televisiva.
** Visualización simultánea de dos canales (PIP o "picture in picture").
** Grabación programable según la guía de programación (en lugar de por horario).
* Música:
** Reproducción de CD, Ogg Vorbis, MP3 y FLAC.(MythMusic)
** Creación de listas de reproducción.
** Copiado de seguridad de CD a MP3/Ogg.
* Juegos:
** Lanzador de emuladores MAME, SNES y NES. (MythGame)
* Fotografía:
** Visor de álbumes fotográficos. (MythGallery)
* Cine:
** Reproductor de archivos multimedia. (MythVideo)
** Reproductor de DVD. (MythDVD)
** Copiado de seguridad de DVD. (MythArchive)
** Edición básica de video. (MythDVD)
* Miscelánea:
** Información meteorológica. (MythWeather)
** Lector de noticias RSS. (MythNews)
** Navegador Web. (MythBrowser)
** Telefonía SIP. (MythPhone)

## Estructuras organizativas/asociativas o de decisión

MythTV posee una buena estructura organizativa, donde cada área está organizada por una persona, la cual es la encargada de corregir bugs, realizar cambios y resolver peticiones acerca de ella. Las áreas se pueden agrupar en
* Porting (Mac Os X y OpenBSD)
* Text(Documentación y traducciones)
* Core(audio, video, librerías...)
* Recorders(MPEG, HDTV...)
* Plugins(DVD, Gallery, Music...)
* Themes.

## Versiones

Un recorrido por las últimas versiones del proyecto, y la fecha de su lanzamiento:
* 0.27.6 lanzada el 2016-02-02
* 0.26 lanzada el 2012-10-03
* 0.25 lanzada el 2012-04-10
* 0.24.2 lanzada el 2012-01-22
* 0.24.1 lanzada el 2011-05-16
* 0.23 lanzada el 2010-05-10
* 0.22 lanzada el 2009-11-06
* 0.21 lanzada el 2008-03-08
* 0.20.2 lanzada el 2007-08-24
* 0.20 lanzada el 2006-09-11
* 0.19 lanzada el 2006-02-12
* 0.18 lanzada el 2005-04-15
* 0.17 lanzada el 2005-02-11
* 0.16 lanzada el 2004-09-10
* 0.14 lanzada el 2004-01-31
* 0.13 lanzada el 2003-12-13
* 0.12 lanzada el 2003-10-18
* 0.11 lanzada el 2003-08-15
* 0.10 lanzada el 2003-07-01

## Distribuciones

MythTV se puede obtener de tres maneras diferentes:
* Como Código fuente: requiere conocimientos para compilar e instalar el programa. Además del paquete básico existen otros de temas y otro de plugins.
* Como paquete de distribución: Existe paquetes deb y rpm para la mayoría de las distribuciones, son fáciles de instalar pero requiere la instalación previa de los demás programas requeridos.
* Como distribución completa de Linux, la cual ya contiene todo lo necesario: Como KnoppMyth (basada en Debian), Mythdora (basada en Fedora) o Mythbuntu (basada en Ubuntu)

## Radiografía

En una aplicación de este estilo, para realizar una radiografía del proyecto no se puede tener en cuenta solamente el código escrito, ya que existen numerosos iconos y fondos cuyo desarrollo puede considerarse mucho más costoso que algunos bloques de código. Los resultados aquí obtenidos pueden entenderse como una cota inferior de los costos del proyecto al tener sólo en cuenta el código.
El paquete básico, en la versión 0.20, supera el medio millón de líneas de código fuente que identifica el SLOCCount, una cifra que según el modelo COCOMO requeriría un esfuerzo para producir un software de este tamaño de 150 persona-años. Por otro lado, otra estimación que arrojo el SLOCCount es la referente al tiempo que tardaría una empresa en tener un software como MythTV, el cual es de 3,6 años, también obtuvimos que el número de desarrolladores que pueden trabajar en paralelo es de aproximadamente 41, cuyo cálculo se obtiene al dividir las persona-años entre los años.
Una vez que sabemos cuánto tiempo y cuanta gente necesitamos, el cálculo de costes es fácil, para ello se toma en consideración el salario de 56.286 $/año, que es el salario promedio de un programador en los Estados Unidos, luego se multiplica ese resultado por 2,40 que incluye cualquier gasto extra que no sean los programadores como por ejemplo: infraestructuras o marketing, todo esto da una cifra de 20.363.190 $, unos 15.000.000 €.
Estado actual de MythTV :
| Página web | http://www.mythtv.org |
| Inicio del proyecto | 2002 |
| Versión actual | 0,21 (08/03/2008) |
| Líneas de código fuente | 549.787 |
| Esfuerzo estimado de desarrollo (persona-mes / persona-año) | 150,74 / 1.808,90 |
| Estimación de tiempo (años) | 3,60 |
| Estimación del n.º de desarrolladores en paralelo | 41,85 |
| Estimación de coste | $20.363.190 (15.000.000 €) |
Otro aspecto a mencionar son los diversos lenguajes de programación utilizados en el desarrollo del proyecto, según el análisis realizado con SLOCCount, los lenguajes más utilizados son ANSI C y C++, en una mínima proporción lenguajes interpretados como perl y shell o lenguaje ensamblador.
Lenguajes de programación utilizados en MythTV 0.20 :
| Lenguaje | Líneas de código | % |
| ANSI C | 276.786 | 50,34% |
| C++ | 264.322 | 48,08% |
| perl | 4.160 | 0,76% |
| sh | 3.048 | 0,55% |
| asm | 1.471 | 0,27%La aplicación MythTV posee numerosos temas que permiten modificar su apariencia. Para obtener todas las funcionalidades que esta aplicación nos proporciona es necesario cumplir algunos requisitos básicos de dependencias para su instalación, además de configurar los plugins que nos proporcionan las diferentes características. Entre las funcionalidades más relevantes cuenta: |

## Estado Actual

El "mito de la convergencia" que menciona Isaac Richards consiste en un electrodoméstico capaz de ofrecer todas las características de entretenimiento del hogar. Este concepto está muy indefinido, pero al menos comprende todas las características que se pueden encontrar en MythTV.
Ya en la actualidad las grandes empresas del sector empiezan a luchar por un trozo del pastel que esta convergencia ofrece. Iniciativas como los nuevos procesadores multimedia presentados por Intel y AMD, nuevas aplicaciones para disfrutar en el sofá de los sistemas operativos comerciales más importantes (Apple Front Row y Windows Media Center) o capacidades multimedia en las consolas de última generación son indicios de este cambio.
El futuro traerá una lucha para dominar este nuevo mercado, y es de esperar que una aplicación como Mythtv demuestre lo que la comunidad del software libre puede proporcionar en este campo, como ya lo hace en otros.