
一个多月前,在五月底,包括艾伦·博克、乔治·卡亚加基斯、纪尧姆·德莫特、斯蒂芬·塞尔瓦奥以及我自己在内的Collaborans参加了在奥斯陆举办的GStreamer春季黑客松。今年,黑客松由Pexip公司友好地承办,该公司使用并开发GStreamer RTP堆栈为其高端视频会议服务器。周末对每一位参加者来说都相当忙碌。以下是回顾我们各自工作的情况。
艾伦讨论了使用playbin记录RTSP流的各种方法,并提出了他关于字幕渲染器和活动格式描述(AFD)支持的待合并请求,讨论了如何正确重做渲染器,以及在Rust中实现。
George讨论了他一直在进行的gst-omx bufferpool代码的重大重构,然后转移了他的注意力到Qt/Android支持。他主要关注缺失的部分,与Nirbheek和我讨论了构建和基础设施问题,并回顾了他的旧补丁。
Guillaume抓住机会提出了一种视频缓冲区布局协商的解决方案。这是确保在Xilinx Zynq UltraScale+ MPSoC和GStreamer上实现零拷贝管道的长期目标的一部分。接着,他讨论了他目前正在进行的项目Karapulse所面临的各种问题,Karapulse是一个用Rust编写并使用GStreamer的卡拉OK播放器。他在渲染方面使用了Matthew Waters的专业知识,并与Sebastien Dröge讨论了在Rust中实现GstbaseParse的绑定。然后,他开始实现cdgparse元素(一种卡拉OK媒体格式)。
Stéphane的大部分时间都花在了将MPD(DASH清单)方法提取出来,用于他一直在工作的新的dashsink元素。他还讨论了Cerbero的各个方面,并为ZBar提供了支持,这是一个用于从各种来源读取条形码的开源软件套件。
关于我自己,我四处奔波。我和Andoni一起工作了一段时间,来计划和准备一个大型MinGW工具链更新的合并,这个更新已经完成了。除了上述讨论之外,我还向Sebastien提出了关于缺少指令和Rust GStreamer元素集成的担忧。引起我注意的是,唯一可用的AV1编码器(rav1e)已经被集成为一个Rust插件,但是当前的Rust构建系统让Linux开发者日子过得非常艰难,因为它与现有系统兼容性不好,所以没有一个发行版包含它,甚至包括GStreamer自己的构建系统Cerbero。
最后,我们显然导致了 freedesktop.org 的 GitLab 基础设施崩溃!或者也许是巧合?这是第一次在每次提交时运行 CI 的黑客松。然而,请注意,我们现在已经记录了如何在不需要运行 CI 的情况下进行推送。这只是处理那个技术问题的良好借口,以便进行更多讨论。总的来说,这是一个非常愉快的聚会,来自 Pexip 的 Håvard Graff 是一位非常棒的主人!