freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

用gstreamer簡化linux多媒體開發(fā)-資料下載頁

2025-06-24 04:30本頁面
  

【正文】 過濾器元件負責完成對MP3格式的數(shù)據進行解碼,最簡單的辦法是安裝mad這一插件,借助它來完成相應的解碼工作:/* 創(chuàng)建過濾器元件 */decoder = gst_element_factory_make (mad, decoder)。 接收器元件負責將解碼后的數(shù)據利用聲卡播放出來:/* 創(chuàng)建接收器元件 */audiosink = gst_element_factory_make (audiosink, play_audio)。 已經創(chuàng)建好的三個元件需要全部添加到管道中,并按順序連接起來: /* 添加元件到管道中 */gst_bin_add_many (GST_BIN (pipeline), filesrc, decoder, audiosink, NULL)。/* 通過襯墊連接元件 */gst_element_link_many (filesrc, decoder, audiosink, NULL)。 所有準備工作都做好之后,就可以通過將管道的狀態(tài)切換到PLAYING狀態(tài),來啟動整個管道的數(shù)據處理流程:/* 啟動管道 */gst_element_set_state (pipeline, GST_STATE_PLAYING)。 由于沒有用到線程,因此必須通過不斷調用gst_bin_iterate()函數(shù)的辦法,來判斷管道的處理過程會在何時結束:while (gst_bin_iterate (GST_BIN (pipeline)))。 只要管道內還會繼續(xù)有新的事件產生,gst_bin_iterate()函數(shù)就會一直返回TRUE,只有當整個處理過程都結束的時候,該函數(shù)才會返回FALSE,此時就該終止管道并釋放占用的資源了: /* 終止管道 */gst_element_set_state (pipeline, GST_STATE_NULL)。/* 釋放資源 */gst_object_unref (GST_OBJECT (pipeline))。 用GStreamer實現(xiàn)的MP3播放器的源代碼如下所示:include gst/int main (int argc, char *argv[]){ GstElement *pipeline, *filesrc, *decoder, *audiosink。 gst_init(amp。argc, amp。argv)。 if (argc != 2) { g_print (usage: %s mp3 filename\n, argv[0])。 exit (1)。 } /* 創(chuàng)建一條新的管道 */ pipeline = gst_pipeline_new (pipeline)。 /* 生成用于讀取硬盤數(shù)據的元件 */ filesrc = gst_element_factory_make (filesrc, disk_source)。 g_object_set (G_OBJECT (filesrc), location, argv[1], NULL)。 /* 創(chuàng)建解碼器元件 */ decoder = gst_element_factory_make (mad, decoder)。 /* 創(chuàng)建音頻回放元件 */ audiosink = gst_element_factory_make (osssink, play_audio)。 /* 將生成的元件添加到管道中 */ gst_bin_add_many (GST_BIN (pipeline), filesrc, decoder, audiosink, NULL)。 /* 連接各個元件 */ gst_element_link_many (filesrc, decoder, audiosink, NULL)。 /* 開始播放 */ gst_element_set_state (pipeline, GST_STATE_PLAYING)。 while (gst_bin_iterate (GST_BIN (pipeline)))。 /* 停止管道處理流程 */ gst_element_set_state (pipeline, GST_STATE_NULL)。 /* 釋放占用的資源 */ gst_object_unref (GST_OBJECT (pipeline))。 exit (0)。 } 五、小結隨著 GNOME 桌面環(huán)境的不斷普及,GStreamer 作為一個強大的多媒體應用開發(fā)框架,已經開始受到越來越多人的關注。Gstreamer在設計時采用了非常靈活的體系結構,并且提供了許多預定義的媒體處理模塊,因此能夠極大簡化在Linux下開發(fā)多媒體應用的難度。 13 / 13
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1