Posteado por: longomatch en: Marzo 25, 2009
Después del éxito que ha tenido el sub-proyecto GStreamer-WinBuilds en la comunidad de desarrolloadores de GStreamer, he decido presentarlo al Google Summer of Code. Mi propuesta es trabajar junto con el equipo de GStreamer para facilitar el desarrollo de GStreamer en Windows, lo cual pasa por 3 importantes puntos:
Ahora sólo falta que el equipo de GStreamer lo considere de interés!
Posteado por: longomatch en: Marzo 23, 2009
Hace un par de días se publicó la versión 0.10.11 del módulo gst-plugins-bad, en la cual colaboré con los siguientes bugs:
A raíz de esto aparezco en la lista de colaboradores de esta versión como se puede ver en las “release notes”.
Posteado por: longomatch en: Marzo 23, 2009
Hace unas semanas ffmpeg anunciaba una nueva versión oficial, la 0.5, lo cual es una estupenda noticia teniendo en cuenta que la última versión databa de la era prehistórica. Estos últimos años el equipo de ffmpeg mantenía la rama trunk de desarrollo “estable”, de tal forma que compilar la última versión de ffmpeg era compilar la última revisión del repositorio. Parece ser que han cambiado de política y van a volver a lanzar una nueva versión de forma periódica, lo cual, en mi opinión, es una excelente idea.
La última actualización del módulo ffmpeg de GStreamer utiliza esta versión, la 0.5, y no puede usarse ninguna revisión posterior por los cambios introducidos en avutil. Como siempre, he descargado el tarball y me he puesto a compilar…. Todo perfecto, pero a la hora de ejecutar me salta un horrible error:
“The application failed to initialize properly (0xc00000005). Click OK to terminate the application”
Esto supone un gran contratiempo, ya que no podré incluir la actualización de este módulo en GStreamer-WinBuilds. Además, a primera vista, es un error al que no se le puede dar suloción
Indagando en las listas de correo de ffmpeg, resulta que el enlace dinámico con avutil y avcodec está roto en Windows, por lo que sólo se puede enlazar estáticamente con dichas librerías. Esta noche intentaré configurar el proyecto gstffmpeg de Visual Studio para enlazar estáticamente utilizando las librerías de MinGW.
Posteado por: longomatch en: Marzo 18, 2009
En estas últimas semanas me he estado centrando GStreamer Winbuild, dejando un poco de lado LongoMatch, pero pensando siempre en nuevas mejoras.
Últimamente he recibido unas cuantas propuestas de mejoras, que he decidido incluirlas en esta versión al considerarlas de gran utilidad. Las mejoras que aportará esta nueva versión son las siguientes:
Esta versión, la 0.14, será oficializada a principios de la semana que viene.
Posteado por: longomatch en: Marzo 12, 2009
Son muchas las distribuciones que he probado en mi vida, pero hay una que me enamoró desde el principio… Debian. Me encató la forma en que se gestionan los paquetes mediante apt-get y como se organizaba la distribución en distintas ramas según la estabilidad de los paquetes. Venía de Windows, donde era impensable instalar cualquier programa con un simple comando, y mi paso por redhat fué un poco frustante, ya que por esa época rpm todavía no gestionaba las dependecias de los paquetes. Por esa razón, una de mis grandes ilusiones fue la de tener un programa en los repositorios oficiales de Debian.
Al presentar LongoMatch al concurso universitario de Software Libre y ver que el programa estaba funcionando bien, se me pasó por la cabeza empezar a buscar la forma para incluirlo en Debian, y así es como descubrí Debian Mentors. Debian Mentors es un repositorio de paquetes público, a través del cual se ofrece la posibilidad de incluir paquetes en los repositorios oficiales sin ser un “Debian Developer”.
Los “Debian Developers” son los únicos que pueden subir paquetes a los repositorios oficiales, y debian mentors ofrece un punto de enlace entre los aspirantes y los “Debian Developers”. Así que la forma que tenemos los desarrolladores ajenos al proyecto Debian de conseguir ver nuestros paquetes en Debian es consiguiendo un “Sponsor”, es decir, un “Debian Developer” que revise el paquete, le dé el visto bueno y lo suba por nosotros.
El proceso es bastante simple:
Posteado por: longomatch en: Marzo 10, 2009
Creado por Andoni Morales Alastruey, estudiante de Ingeniería de Telecomunicaciones en la Universidad Politécnica de Madird
LongoMatch es un proyecto de Software Libre diseñado para facilitar el análisis por vídeo de encuentros deportivos. Su función es la de ayudar a los entrenadores a realizar estudios técnico/tácticos de un partido, marcando las jugadas de interés y agrupándolas por categorías. Con un simple click, permite visualizar cualquier jugada del partido que hayamos añadido con anterioridad a la base datos, pudiendo ajustar finamente el tiempo de inicio y fin de cada una. Además, incluye un conjunto de herramientas que facilitan la presentación de los resultados del análisis como son las listas de reproducción, la generación de series de imágenes de una jugada o la creación de nuevos vídeos a partir de una lista de reproducción, entre otras.
En el deporte de alto nivel, el uso de las nuevas tecnologías es cada vez más habitual a la hora intentar mejorar el rendimiento de un equipo o de un deportista. En los deportes de equipo con un alto componente táctico, como el hockey hierba, el baloncesto o el rugby, se hace uso del vídeo para analizar el juego del equipo contrario y poder plantear el encuentro de la mejor forma posible. Actualmente existen varios programa de pago con esta finalidad, pero su coste es desorbitado, en torno a los 6000€… un precio que muchos clubes no se pueden permitir. LongoMatch nace con la intención de ser el primer proyecto que ofrece una solución libre y gratuita para el estudio y análisis de encuentros deportivos por vídeo, en un afán por democratizar el deporte.
LongoMatch ofrece herramientas para las tres fases del análisis. En la fase de codificación, permite marcar las jugadas importantes del encuentro, agrupándolas por categorías de tal forma que sean accesibles con un simple click. En la fase de análisis, permite ajustar de forma precisa el inicio y fin de cada jugada mediante un timeline, pudiendo revisar cada una de ellas frame a frame. El último paso es el de presentación, para el cual LongoMatch ofrece tres herramientas: exportación de jugadas a series de imágenes, listas de reproducción mediante las cuales podemos mostrar de forma sencilla las jugadas más importantes y exportación de las listas reproducción a un nuevo vídeo.
LongoMatch es multiplataforma y es uno de los primeros proyectos, junto con Elisa y Songbird, en apostar por el uso de GStreamer como framework multimedia en todas las plataformas. GStreamer es un gran veterano en GNU/Linux, pero hasta ahora, pocos se han atrevido a utilizarlo en Windows o Mac OS X, principalmente porque el equipo de GStreamer no porporciona binarios para estos sitemas operativos, dejando a los desarrolladores la tarea de portabilidad y compilación. Los esfuerzos de LongoMatch por portar GStreamer a Windows han derivado en un nuevo proyecto en colaboración con Andrés Colubri: GStreamer Win&MacBuild. Este proyecto ha tenido una excelente acogida en la comunidad por ser el primero en proporcionar un instalador para Windows (y en un futuro muy cercano también para Mac OS X) con binarios funcionales de GStreamer. De esta forma, se ofrece por primera vez una alternativa libre a los ya conocidos DirectShow y QuickTime.
Posteado por: longomatch en: Febrero 26, 2009
Después de varios meses de duro trabajo en colaboración con Andrés Colubri, nos enorgullecemos de anunciar lel lanzamiento oficial de GStreamer WinBuild, el primer paquete de binarios totalmente funcional de GStreamer para Windows!
El versionado sigue la política de GStreamer, siendo 0.10 la rama actual de desarrollo.
GStreamer WinBuild proporciona actualmente binarios para los siguientes módulos de GStreamer:
Podéis encontrar una lista con todos los plugins soportados en el wiki.
Este primera release incluye importantes cambios con respecto a las anteriores versiones no oficiales:
Espero que la comunidad lo disfrute!
Posteado por: longomatch en: Febrero 25, 2009
El termino DLL Hell se refiere a los problemas ocasionados por las dll en Windows. El “infierno” ocurre cuando:
El DLL Hell se ha intentado corregir por parte de Microsoft con los “side-by-side assemblies” (SxS) que permiten a una aplicación selecionar una versión específica de una dll. En que consiste esto? Pues tiene una fácil explicación: en el manifest de la aplicación se especifica la dll que vamos a usar y su versión, de tal forma que cuando se vaya cargar dicha dll, se buscará el ensamblado con la versión especificada en el manifest. El problema es que se buscan las dll’s en un caché de ensamblados y si no está, la aplicación muere al no poder cargarla. Ahora ya no se puede simplemente copiar esa dll a cargar en el directorio en el que está el ejecutable (esto daría lugar al famoso DLL Hell), sino que tiene que estar registrada en el caché
Esto deriva en nuevo problema: el Manifest Hell. ¿Qué pasa si compilamos una aplicación con VC2008, enlazando con el CRT de Windows, es decir, con msvcr90.dll? La aplicación tendrá un manifest de este tipo:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level='asInvoker' uiAccess='false' />
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
</assembly>
Cómo se observa en la sección dependentAssembly, la aplicación buscará el ensamblado Microsoft.VC90.CRT de versión 9.0.21022.8 , el cual no se distribuye en por defecto en ningún sistema operativo de Windows. ¿Esto quiere decir que si compilo una aplicación con VC2008 no la puedo ejecutar en culauiqer máquina? La respuesta es NO, NO SE PUEDE. Este problema ha sido todo un infierno, de ahí el nombre Manifest Hell, en el despliegue de LongoMatch (y más específicamente de GStreamer) y me ha llevado un muchos de quevraderos de cabeza estos últimos meses. La solución de Microsoft es instalar en la máquina objetivo el Microsoft Redistributable Package, lo cual me parece una solución poco elegante al tener que recurrir a otro instalador.
El problema es que mi aplicación usa GStreamer, cuyos binarios tengo que compilar con VC2008 (GStreamer no proporciona binarios para Windows y cada uno tiene que hacerlo a su manera, lo cual ha derivado en nuevo proyecto que está teniendo muy buena acogida en la comunidad GStreamer). La solución es más simple de lo que parece, pero estando muy mal documentada fué muy difícil de encontrar.
Antes he comentado que la busqueda de ensamblados se realiza en una caché de ensamblados SxS, pero existe una forma de distribuir copias privadas. Consiste en copiar el contenido de la capeta %PROGDIR%\Microsoft Visual Studio 9.0\VC\Redist\x86\Microsoft.VC90.CRT a la carpeta bin\ de nuestro programa. De esta forma, al lanzar el ejecutable principal y buscar el ensamblado Microsoft.VC90.CRT, encontrará en su directorio de ejecución una carpeta de nombre Microsoft.VC90.CRT con el contenido del ensamblado. Si la versión buscada coincide con la especificada en el manifest cargará la dll con éxito.
Problema Solucionado!
Posteado por: longomatch en: Febrero 17, 2009
Pequeña actualización de LongoMatch que corrige un error del editor de plantillas. Un error en el lector de plantillas hacía que se leyese el tiempo de parada siempre.
La nueva versión está lista para descargarse desde la forja
Posteado por: longomatch en: Febrero 5, 2009
Después de casi 3 semanas sin publicar niguna versión ( por exámenes y por tener el portátil roto), finalmente sale a la luz LongoMatch 0.12.
En este versión me he centrado en mejorar el aspecto de la aplicación en Windows, añadiendo un selector de temas para personalizarlo al gusto de cada uno. Al selector de temas se accede con el ejecutable gtk2_prefs.exe localizado en la carpeta bin del directorio de instalación.
También he añadido unos cuantos plugins a GStreamer, el motor multimedia, dando soporte a archivos MP4 y añadiendo un decodificador MPEG2. Además se han corregido una serie de pequeños errores que tenía la aplicación de tal forma que estoy ya pensanado en crear la primera prerelease para LongoMach 1.0
Como siempre podéis descargaros la útima versión desde la página oficial de Longomatch