GStreamer高级概念之Interfaces

将element用作 GObject,将GObject 属性的使用作为应用程序和元素交互的一种简单方式。这种方法对于简单的 getter 和 setter 来说就足够了,但对于更复杂的东西就失败了。对于更复杂的用例,GStreamer 使用基于GObject GTypeInterface 类型的接口 。

URI处理程序接口

到目前为止,在我们的示例中,我们仅使用“filesrc”元素展示了对本地文件的支持,但 GStreamer 支持更多的位置源。

GStreamer 不需要应用程序知道任何URI细节,例如用于特定网络源类型的元素。这些细节被GstURIHandler接口抽象出来。

URI命名没有严格的规则,但一般来说,我们遵循通用命名约定。例如,假设您安装了正确的插件,GStreamer 支持:

file:///<path>/<file>
http://<host>/<path>/<file>
mms://<host>/<path>/<file>
dvb://<CHANNEL>
...

为了获得支持特定 URI 的源或接收器元素,请根据您需要的方向使用gst_element_make_from_uri ()withGST_URI_SRCGST_URI_SINK as GstURIType

您可以使用 GLib g_filename_to_uri ()g_uri_to_filename ().

色彩平衡界面

GstColorBalance接口是一种方法,一个元素上控制视频相关的性质,如亮度,对比度等。它存在的唯一原因是,据其作者所知,无法使用GObject.

色彩平衡界面由多个插件实现,包括 xvimagesinkglimagesinkVideo4linux2元素

视频叠加界面

GstVideoOverlay创建该界面是为了解决在应用程序窗口中嵌入视频流的问题。应用程序为实现此接口的元素提供了一个窗口句柄,然后该元素将使用此窗口句柄来绘制而不是创建一个新的顶级窗口。这对于在视频播放器中嵌入视频很有用。

该接口是由Video4linux2 元素和由glimagesinkximagesinkxvimagesink和 实现的sdlvideosink

其他接口

GStreamer 提供了很多其他接口,并由其某些元素实现。其中:

  • GstChildProxy 用于访问多子元素的内部元素的属性
  • GstNavigation 用于导航事件的发送和解析
  • GstPreset 用于处理元素预设
  • GstRTSPExtension 一个 RTSP 扩展接口
  • GstStreamVolume 提供访问和控制流音量级别的接口
  • GstTagSetter 用于处理媒体元数据
  • GstTagXmpWriter 对于提供 XMP 序列化的元素
  • GstTocSetter 用于设置和检索类似 TOC 的数据
  • GstTuner 对于提供射频调谐操作的元件
  • GstVideoDirection 用于视频旋转和翻转控制
  • GstVideoOrientation 用于视频方向控制
  • GstWaylandVideo 韦兰视频接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值