创建一个GstElement对象
要想在应用程序中创建GstElement对象,唯一的办法是借助于工厂对象GstElementFactory。由于GStreamer框架提供了多种类型的GstElement对象,因此对应地提供了多种类型的GstElementFactory对象,它们是通过特定的工厂名称来进行区分的。
1.gst_element_factory_find()函数获得了一个名为mad的工厂对象,"mad"是用于mp3的工厂对象,它之后可以用来创建与之对应的MP3解码器元件:
GstElementFactory *factory;
factory = gst_element_factory_find("mad");
2.成功获得工厂对象之后,接下来就可以通过gst_element_factory_create()函数来创建特定的GstElement对象了,该函数在调用时有两个参数,分别是需要用到的工厂对象,以及即将创建的元件名称。元件名称可以用查询的办法获得,也可以通过传入空指针(NULL)来生成工厂对象的默认元件。下面的代码示范了如何利用已经获得的工厂对象,来创建名为decoder的MP3解码器元件:
GstElement *element;
element = gst_element_factory_create(factory, "decoder");
上面这两步可以用gst_element_factory_make
("factoryname","element name");来一步实现;
当创建的GstElement不再使用的时候,还必须调用gst_element_unref()函数释放其占用的内存资源:
使用元件作为GObject 对象