GStreamer HackFest otoño 2022

9 de Noviembre de 2022 a las 06:00

GStreamer HackFest otoño 2022

Por Rubén González y Andoni Morales

Del 16 al 18 de octubre, tuvimos el placer de ser los anfitriones del tan esperado GStreamer HackFest en nuestras oficinas en Barcelona. Recibimos 46 GStreamer hackers de diversas partes del mundo, además de 7 uniéndose remotamente. 

El evento fue un gran éxito en términos de asistencia, considerando que este HackFest no se organizó justo después de la conferencia GStreamer, donde es más fácil organizar unos días adicionales para quedarse. La razón de este éxito no fue un secreto: ¡Todos los miembros de la comunidad estaban animados de volverse a encontrar en persona! Ya que el HackFest que iba a organizarse en Barcelona en la primavera del 2019, tuvo que ser cancelado debido al brote del COVID-19, y ya habían pasado tres años desde el último evento comunitario. 

El HackFest empezó un día antes con una cena de bienvenida en el restaurante Xiroi’s. Con el mar de Barcelona como paisaje principal, fue el lugar perfecto para recibir a todos, viejos conocidos y también saludar a los nuevos. 

El lunes empezamos con un buen desayuno y algunos problemas técnicos: había que arreglar el Wi-Fi. Pero, después de solucionarlo, hicimos una ronda de presentación y hablamos sobre nuestros objetivos para este HackFest. Finalmente, estábamos listos para comenzar a hackear. 

Esa noche, cenamos en el barrio del Born después de hacer un rápido recorrido por El Gótico, en donde vimos la Catedral de Barcelona, la iglesia de Santa María del Mar y las fantásticas calles del casco antiguo. Esa fue otra oportunidad para continuar las discusiones sobre GStreamer e interactuar más. 

Durante el segundo día del HackFest hicimos una ronda de charlas relámpago en las que presentamos un resumen del trabajo realizado recientemente. Dado a que la última conferencia se organizó hace casi tres años, fue una excelente oportunidad para mostrar lo trabajado durante este tiempo. Estos fueron los temas presentados: 

    ✓ El nuevo adaptivedemux2 por Edward Hervey (bilboed)
    ✓ Nuevos plugins en Rust webrtcsink y webrtcsrc por Thibault Saunier (thiblahute)
    ✓ Una demostración de webrtcsink por Loïc Le Page (neodesys)
    ✓ Porcentaje de recuperación (TWCC/RTX) por Håvard Graff (hgr)
    ✓ Stuffing con RTX por Tulio Beloqui (fR30n)
    ✓ GstShark tracers por Michael Grüner (michaelgruner)
    ✓ Gst-plugins-cv por Fabian Orccon (cfoch)
    ✓ Agregar API de MSE y EME a GStreamer por George Kiagiadakis (gkiagia)
    ✓ Mejorando el soporte analítico por Daniel Morin (dmorin)
    ✓ GstPipelineStudio por Stephane Cerveau(dabrain34)

Todos nuestro equipo de ingeniería asistió al HackFest trabajando en diferentes temas. A continuación podrás encontrar una descripción general de todos ellos. ¡Empecemos! 

Andoni trabajó para agregar soporte para compilar Python en Windows con Meson. Esto requirió parches en varios proyectos: 

- In GObject - introspection y glib para admitir la construcción a partir de subproyectos
- En Meson, permitir que pkg-config use los archivos .pc desinstalados para que pkg-config pueda enumerar correctamente las dependencias desinstaladas
- En GStreamer, instalar pkg-config y habilitar la introspección

Rubén revisó todo el trabajo realizado por Fluendo en su fork de Cerbero para revisar si se puede hacer upstream. Todos los commits fueron clasificados. Hasta el momento, ya se han creado ocho merge requests (MR) y se realizarán más en el futuro. 

Carlos y Marc iniciaron la implementación de un elemento BaseSrc para Windows basado en AMF. El primer paso que hicieron fue mover los encabezados y las utilidades de AMF de la carpeta amfcodec/ a gst-libs/ para usarlos en otros elementos, no solo dentro de amfcodec.

Marc creó un MR para solucionar problemas menores en el OSXrelocator de Cerbero.

Diego trabajó con Aleksandr para extender el análisis AAC para admitir el encabezado PCE en los datos del códec para ADTS AAC. Estos cambios nos permite reproducir este tipo de audio. Sin embargo, aún se necesita un refactor para reutilizar las funciones de aacparser y verificar los valores de frecuencia de muestreo para crear un PR. Diego también trabajo en la actualización del PR para el regreso rápido de errores cuando la negociacion de caps falla.

Aleksandr también portó un antiguo PR a matroskademux y subparse al monorepo y creó un PR para el plugin clearkey drm del framework av de Android.

Manel, por su parte, trabajó para tener la última versión de GStreamer y los complementos base de GStreamer en el repositorio global de Conan.

Fabián se enfocó en problemas menores con Meson, GES, y ejemplos de GES.

Aleix y Sergio optaron por trabajar en un bug abierto: cómo construir el complemento OpenCV en Windows. También realizaron un trabajo inicial para integrar modelos de aprendizaje profundo en GStreamer utilizando el OSS.

Generalmente, un HackFest se evalúa desde un punto de vista técnico, basado en el trabajo realizado durante los días que dedicas a un tema en particular. Pero para nosotros también aporta un valor mucho mayor en el aspecto personal, ya que nos permite conocer físicamente a las personas con las que estamos trabajando e interactuando con IRC, por correo electrónico o a través de merge requests. 

Todo lo anterior nos hace creer que este HackFest fue un rotundo éxito, al dar la oportunidad de no solo mejorar técnicamente, sino también de reencontrarnos con antiguos compañeros, conocer a nuevos y trabajar nuevamente en persona. 

Ya estamos contando los días para el siguiente

¡Feliz hacking!