#186 媒体解析

2025年2月7日 • 8 条笔记 • 由 Felix 整理

GNOME 项目在 1 月 31 日至 2 月 7 日期间的最新进展。

GNOME 核心应用和库

Sam Thursfield 报告

LocalSearch 文件系统提取器将在下一个主要版本中从 GStreamer 切换到 ffmpeg / libav 进行媒体文件解析。GStreamer 在这个角色上为我们服务了近 20 年,作为一个媒体解析库,但它被设计用于媒体播放,而不是快速元数据提取。它的插件支持意味着它在不同的系统上行为不同,具体取决于安装了哪些插件,这使得完全测试变得不可能。过去几年,LocalSearch 元数据提取器获得了更好的沙箱机制,但由于 GStreamer 加载插件的方式,我们不得不打开几个沙箱漏洞才能使其工作,并进行一场 whack-a-mole 游戏来阻止任何无法在沙箱中工作的 GStreamer 插件。

新的基于 ffmpeg 的实现速度更快,并且由于更严格的沙箱机制而更安全。它支持我们需要的解析所有媒体格式,事实上,在大多数系统上,GStreamer 已经在使用 libav 处理许多文件类型。感谢 Carlos Garnacho 提供的 合并请求

GJS

在你的 JavaScript 程序中使用 GNOME 平台库。GJS 驱动 GNOME Shell、Polari、GNOME Documents 和许多其他应用程序。

ptomato

在 GNOME 48.beta 中,GJS 交互式控制台将是异步的。例如,您可以创建一个带有按钮的窗口,连接一个信号处理程序,单击该按钮,并且信号处理程序将在单击按钮时运行。 之前,信号处理程序不会运行,因为它被控制台等待输入所阻塞。(这尚未使 await 在交互式控制台中工作,但它是先决条件。)感谢 Evan Welsh 进行了深入的研究!

ptomato

同样在 GNOME 48.beta 中,由于 Gary Li 的贡献,我们有了一种更简单的方法来创建 GObject.Value。通常,对于使用 GValue 的 C API,GJS 会透明地替换为本机 JS 值。但是,在某些情况下,您需要使用 JS 中的 GObject.Value 包装器。 之前,您会创建一个空对象,调用 init 来设置类型,然后存储一个值

const value = new GObject.Value();
value.init(String);
value.set_string('a string');

现在您可以使用一个来完成:new GObject.Value(String, 'a string');

GNOME 发布

Jeremy Bicha 报告

Debian GNOME 团队宣布 GNOME 48 将包含在 Debian 13 “Trixie” 中。Debian 13 将于今年晚些时候发布。

GNOME Circle 应用和库

Shortwave

拥有超过 30000 个电台的互联网广播播放器。

Felix 报告

Shortwave 5.0 现已发布,带来了后台播放和完全重新的流式录音功能!

有关更多详细信息,请查看博客文章:https://blogs.gnome.org/haeckerfelix/2025/02/05/shortwave-5-0/

第三方项目

fabrialberio

Pins (前身为 PinApp) 版本 2.0 现已发布!新版本是完全重写的成果,从 Python 切换到 C。这带来了许多主要和次要的改进,包括新的网格视图和对自动启动应用程序的支持。在 Flathub 上查看该应用程序。

petsoi

Words! 0.3 现已发布,支持多种词典和不同的单词长度!我还添加了一个德语词典。如果您想包含您的语言,请随时提交一个单词列表。

Shell 扩展

Just Perfection 报告

已经发布了 GNOME Shell 48 扩展移植指南!如果您在移植方面需要任何帮助,可以在 GNOME Extensions Matrix 频道 上向我们咨询。

本周就到此为止!

下周再见,请务必访问 #thisweek:gnome.org,分享您自己的项目更新!