入门
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