#include #include //定義訊息處理函式,
static gboolean bus_call(gstbus *bus,gstmessage *msg,gpointer data)
default:
break;
}return true;
}int main(int argc,char *argv)
//建立管道和元件
pipeline = gst_pipeline_new("audio-player");
source = gst_element_factory_make("filesrc","file-source");
decoder = gst_element_factory_make("mad","mad-decoder");
sink = gst_element_factory_make("autoaudiosink","audio-output");
if(!pipeline||!source||!decoder||!sink)
//設定 source的location 引數。即 檔案位址.
g_object_set(g_object(source),"location",argv[1],null);
//得到 管道的訊息匯流排
bus = gst_pipeline_get_bus(gst_pipeline(pipeline));
//新增訊息監視器
gst_bus_add_watch(bus,bus_call,loop);
gst_object_unref(bus);
//把元件新增到管道中.管道是乙個特殊的元件,可以更好的讓資料流動
gst_bin_add_many(gst_bin(pipeline),source,decoder,sink,null);
//依次連線元件
gst_element_link_many(source,decoder,sink,null);
gst_element_set_state(pipeline,gst_state_playing);
g_print("running\n");
//開始迴圈
g_main_loop_run(loop);
g_print("returned,stopping playback\n");
gst_element_set_state(pipeline,gst_state_null);
gst_object_unref(gst_object(pipeline));
return 0;
}
GStreamer 編譯安裝 2021 1 11
本文適合開發者採用gstreamer開發gstreamer應用。只針對linux。對於windows,可以參考 building using cerbero.一 設定gst build git clone cd gst build 或者,如果您具有開發人員訪問儲存庫的許可權,請執行以下操作 git ...
centos安裝gstreamer報錯解決方案
最近在倒騰語音識別的乙個方案 在ubuntu下可以安裝readme.md的步驟順利安裝成功,在centos下,則需要自行修改dockfile的指令,講講其中遇到的兩個問題 1 安裝openfst一直失敗,這個問題主要是經驗不足造成的,由於之前失敗過,後邊儘管按照提示一步一步解決依然make失敗,主要...
Gstreamer 排程模式
翻譯自part scheduling.txt 排程在gstreamer中,排程模式是基於pad是主動積極地推送 產生 資料還是從其他的pad拉資料。推模式 push 乙個pad能夠產生資料,並且推送給下乙個pad,按這種模式工作的pad有乙個loop函式,loop函式被重複呼叫直到返回false。l...