background image

GstElement *element;
element = gst_element_factory_create (factory, "decoder");
 

当创建的

GstElement 不再使用的时候,还必须调用 gst_element_unref()函数释放其占

用的内存资源:

 

gst_element_unref (element);
 

GStreamer 使用了与 GObject 相同的机制来对属性(property)进行管理,包括查询

query)、设置(set)和读取(get)等。所有的 GstElement 对象都需要从其父对象

GstObject 那 里 继 承 名 称 ( name ) 这 一 最 基 本 的 属 性 , 这 是 因 为 像 
gst_element_factory_make()和 gst_element_factory_create()这样的函数在创建工
厂 对 象 和 元 件 对 象 时 都 会 用 到 名 称 属 性 , 通 过 调 用

gst_object_set_name() 和

gst_object_get_name()函数可以设置和读取 GstElement 对象的名称属性。 

1.2 衬垫处理

衬垫(

pad)是 GStreamer 框架引入的另外一个基本概念,它指的是元件(element)

与外界的连接通道,对于框架中的某个特定元件来说,其能够处理的媒体类型正是通过衬
垫 暴 露 给 其 它 元 件 的 。 成 功 创 建

GstElement 对 象 之 后 , 可 以 通 过

gst_element_get_pad()获得该元件的指定衬垫。例如,下面的代码将返回 element 元件
中名为

src 的衬垫: 

GstPad *srcpad;
srcpad = gst_element_get_pad (element, "src");
 

如果需要的话也可以通过

gst_element_get_pad_list()函数,来查询指定元件中的所有

衬垫。例如,下面的代码将输出

element 元件中所有衬垫的名称: 

GList *pads;