Kernel-Zhang的个人主页

gstreamer插件编写指南:添加属性

控制元素行为的最主要和最重要的方式是通过 GObject 属性。GObject 属性是在_class_init ()函数中定义的。元素可选择实现_get_property ()和_set_property ()函数。如果应用程序更改或请求某个属性的值,这些函数将收到通知,然后可以填入该属性的值,或采取必要的措施使该属性的值在内部发生变化。 您可能还想保留一个实例变量,其中包含您在 get ...

gstreamer插件编写指南:查询函数

通过查询功能,您的元素将收到必须回复的查询。这些查询包括位置、持续时间,也包括元素支持的格式和调度模式。 查询既可以向上游也可以向下游发送,因此您可以在汇衬底上接收查询,也可以在源衬底上接收查询。 下面是一个非常简单的查询函数,我们将其安装在元素的源衬底上。 static gboolean gst_my_filter_src_query (GstPad *pad, ...

gstreamer插件编写指南:指定衬底

如前所述,pad 是数据进出元素的端口,因此在元素创建过程中非常重要。在模板代码中,我们已经看到静态 pad 模板是如何在元素类中注册 pad 模板的。在这里,我们将看到如何创建实际的元素,如何使用_event () 函数为特定格式进行配置,以及如何注册函数让数据在元素中流动。 在元素_init ()函数中,通过在_class_init ()函数中向元素类注册的 pad 模板创建 pad。...

gstreamer插件编写指南:构建模板

在本章中,你将学习如何为一个新插件构建最基本的代码。从零开始,你将了解如何获取 GStreamer 模板源代码。然后,你将学习如何使用一些基本工具来复制和修改模板插件,以创建一个新插件。如果你能按照这里的示例进行操作,那么在本章结束时,你将拥有一个可以编译并在 GStreamer 应用程序中使用的功能性音频过滤器插件。 获取 GStreamer 插件模板 目前有两种方法为 GStream...

gstreamer插件编写指南:编写插件

现在,你已经准备好学习如何制作插件了。在本部分指南中,你将学习如何应用基本的 GStreamer 编程概念来编写一个简单的插件。本指南的前几部分没有明确的示例代码,可能会让人觉得有些抽象和难以理解。相比之下,本部分将通过开发一个名为 “MyFilter “的音频过滤器插件示例,同时介绍应用程序和代码。 示例滤波器元素一开始只有一个输入衬底和一个输出衬底。起初,过滤器只是简单地将媒体和事件数...

gstreamer插件编写指南:简介

导言 GStreamer 是一个功能强大、用途广泛的框架,可用于创建流媒体应用程序。GStreamer 框架的许多优点都来自于它的模块化:GStreamer 可以无缝集成新的插件模块。但是,由于模块化和强大的功能往往是以更高的复杂性为代价的(例如CORBA),因此编写新的插件并非易事。 本指南旨在帮助你了解 GStreamer 框架,以便开发新插件来扩展现有功能。本指南通过开发一个用 C...