創建一個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 對象