gstreamer元件狀態

2021-06-08 18:05:12 字數 973 閱讀 1949

gstreamer元件狀態

gst_state_null

: 預設狀態

該狀態將會**所有被該元件占用的資源。

gst_state_ready

: 準備狀態

元件會得到所有所需的全域性資源,這些全域性資源將被通過該元件的資料流所使用。例如開啟裝置、分配快取等。但在這種狀態下,資料流

仍未開始被處 理,所以資料流的位置資訊應該自動置0。如果資料流先前被開啟過,它應該被關閉,並且其位置資訊、特性資訊應該被重

新置為初始狀態。

gst_state_paused

: 暫停狀態

在這種狀態下,元件已經對流開始了處理,但此刻暫停了處理。因此該狀態下元件可以修改流的位置資訊,讀取或者處理流資料,以及一

旦狀態變為 playing,流可以重放資料流。這種情況下,時鐘是禁止執行的。總之, paused 狀態除了不能執行時鐘外,其它與 playing

(autopluggers)可以對已經載入進管道的外掛程式進行這種狀態轉換。其它更多的像codecs或者 filters這種元件不需要在這個狀態上做任

何事情。

gst_state_playing

: 執行狀態

playing 狀態除了當前執行時鐘外,其它與 paused 狀態一模一樣。你可以通過函式gst_element_set_state()來改變乙個元件的狀態。你

如果顯式地改變乙個元件的狀態,gstreamer可能會 使它在內部經過一些中間狀態。例如你將乙個元件從 null 狀態設定為 playing 狀態

,gstreamer在其內部會使得元件經歷過 ready 以及 paused 狀態。當處於gst_state_playing 狀態,管道會自動處理資料。它們不需要

任何形式的迭代。 gstreamer 會開啟乙個新的執行緒來處理資料。gstreamer 同樣可以使用 gstbus在管道執行緒和應用程式現成間互動資訊。

有狀態元件和無狀態元件

react 基礎知識 有狀態元件和無狀態元件 注意 使用class關鍵字建立的元件,有自己的私有資料 this.state 和生命週期函式 注意 使用function建立的元件,只有props,沒有自己的私有資料和生命週期函式 有狀態元件 用class關鍵字建立出來的元件 用的最多 無狀態元件 用建...

Gstreamer 排程模式

翻譯自part scheduling.txt 排程在gstreamer中,排程模式是基於pad是主動積極地推送 產生 資料還是從其他的pad拉資料。推模式 push 乙個pad能夠產生資料,並且推送給下乙個pad,按這種模式工作的pad有乙個loop函式,loop函式被重複呼叫直到返回false。l...

GStreamer 安裝測試

include include 定義訊息處理函式,static gboolean bus call gstbus bus,gstmessage msg,gpointer data default break return true int main int argc,char argv 建立管道和元...