GStreamer API学习记录(二)
GStreamer API学习记录(二)
基础概念
部分内容转载:https://www.cnblogs.com/iplus/archive/2012/08/21/4467399.html
学习资料
里面有很多资料可以看,MARK!
单元
Element是构成管道的组件
Pad
pad是一个单元的输入输出端口, 通过pad, 才能将两个单元链接到一起。对输入来说,pad就是一个插口,对输出来说pad就是一个塞子。pad有自己的规格,所以不同规格的pad就限制了数据的规格。只有规格相符的pad才能链接到一起。
l 规格协商的过程叫caps negotiation
l 数据类型叫GstCaps
Pad的属性
刚才提到过,查找相容的pad,那么相容是怎么判断和体现的呢?pad有自己的能力熟悉(Capabilities)
pad的能力熟悉是和pad模板以及pad绑定一起的。pad模板估计就是一个pad工厂。
一个pad有很多不同的能力,这个是最原始的信息。但是具体工作后,一个pad要和别的pad协商,大家按照规定的能力办 事。这样,pad的能力就是协商后的能力了。
能力在GST中用GstCaps来表示。
GstCaps含一到多个Gstructure,一个Gstructure代表一种pad能处理的媒体类型。
elements
GstElement是最重要的对 象。一些高级对象也是从它派生出来的。有好几种类型的elements,必须分清楚了。
1.源单元
source单元是数据的产生方, 对应一个源pad。一般画在右边。源单元只能生产数据,不能接收数据。
2.中间单元
中间单元包括过滤器,转换器,复用器,解复用器,编解码器等。它有多个源pad,对应多个目标pad。
3.目标单元
只能接受数据。
4.创建和使用单元
通过factory_make和gst_object_unref来创建及释放单元。make需要两个参数,一个是工厂名,一个是单元名。工厂名实际就是插件名,所以需要先加载插件上 来,才能创建对应的单元。
单元继承所有Gobject的属性,所以可以当做Gobject来处理。

浙公网安备 33010602011771号