图
1
需要注意的是,过滤器元件的具体形式是非常灵活的,
GStreamer 并没有严格规定输入
端和输出端的数目,事实上它们都可以是一个或者多个。图
2 是一个 AVI 分离器的基本结
构,它能够将输入数据分离成单独的音频信息和视频信息,用于实现该功能的过滤器元件
很明显只具有一个输入端,但却需要有两个输出端。
图
2
要 想 在 应 用 程 序 中 创 建
GstElement 对 象 , 唯
一的办法是借助于工厂对
象
GstElementFactory。由于 GStreamer 框架提供了多种类型的 GstElement 对象,因此
对应地提供了多种类型的
GstElementFactory 对象,它们是通过特定的工厂名称来进行
区分的。例如,下面的代码通过
gst_element_factory_find()函数获得了一个名为 mad
的工厂对象,它之后可以用来创建与之对应的
MP3 解码器元件:
GstElementFactory *factory;
factory = gst_element_factory_find ("mad");
成功获得工厂对象之后,接下来就可以通过
gst_element_factory_create()函数来创建
特定的
GstElement 对象了,该函数在调用时有两个参数,分别是需要用到的工厂对象,
以及即将创建的元件名称。元件名称可以用查询的办法获得,也可以通过传入空指针
(
NULL)来生成工厂对象的默认元件。下面的代码示范了如何利用已经获得的工厂对象,
来创建名为
decoder 的 MP3 解码器元件: