Gstreamer应用开发手册9:动态控制参数

Gstreamer控制器子系统允许在流运行时调整GObject属性,通过GstControlSource和控件绑定实现。控制器机制主要在GstObject中实现,可以创建自定义GstControlSources。设置参数时,需创建GstControlSource并附加到对象属性,控制点用于指定带时间戳的属性值变化。注意实时模式下,g_object_set()仍可直接设置属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

入门

GStreamer属性通常是使用g_object_set()设置的,但是想实时地调用来更改流几乎是不可能的。控制器子系统提供了一种轻量级的方法来在流运行时调整GObject属性。

控制器要考虑到时间影响,它通过GstControlSource控件来修改属性。控制源提供0.0到1.0的范围的时间戳的值。控件绑定将控件值映射到GObject它们绑定到的属性,将类型转换并缩放到目标属性的值范围。在运行时,元件在当前流时间连续提取值的更改来更新GObject属性。GStreamer已经包含一些不同的GstControlSources和控件绑定,但是应用程序可以通过对各个基类进行子类化来定义它们自己的。

控制器机制的大部分都在GstObject中实现。GstControlSources的基类和控件也包含在核心库中,但是现有的实现包含在gstcontroller库中,因此您需要根据需要在应用程序的源文件中包含这些头文件。

#include <gst/gst.h>
#include <gst/controller/gstinterpolationcontrolsource.h>
#include <gst/controller/gstdirectcontrolbinding.h>
...

除了包含头文件之外,应用程序还应链接到 gstreamer-controller共享库。可以使用下边的指令来获取所需的编译器和链接器标志:

p
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值