background image

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 解码器元件: