COutputQueue 類別
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
類別 COutputQueue
會實作佇列來傳遞媒體範例。
這個類別可讓輸出釘選以非同步方式傳遞範例。 範例會放在佇列上,而背景工作執行緒會將它們傳遞至輸入針腳。 佇列也可以保存控制訊息,指出新的區段、串流結束通知或排清作業。
若要使用此類別,請為篩選上的每個輸出釘選建立 COutputQueue 物件。 在建構函式方法中,指定連接到該輸出針腳的輸入針腳。 使用這個類別時,輸出針腳不會直接在輸入針腳上呼叫方法。 相反地,它會在 中 COutputQueue
呼叫對應的方法,如下表所示。
Pin 方法 | COutputQueue 方法 |
---|---|
IPin::BeginFlush | BeginFlush |
IPin::EndFlush | EndFlush |
IPin::EndOfStream | EOS |
IPin::NewSegment | NewSegment |
IMemInputPin::Receive | 接收 |
IMemInputPin::ReceiveMultiple | ReceiveMultiple |
您可以選擇性地設定 COutputQueue
物件以同步方式傳遞樣本,而不需要背景工作執行緒。 物件也可以根據輸入針腳的特性,在執行時間決定是否要使用背景工作執行緒。 如需詳細資訊,請參閱 COutputQueue::COutputQueue。
受保護的成員變數 | Description |
---|---|
m_pPin | 輸入針腳的 IPin 介面指標。 |
m_pInputPin | 輸入針腳的 IMemInputPin 介面指標。 |
m_bBatchExact | 旗標,指定物件是否以確切批次傳遞樣本。 |
m_lBatchSize | 批次大小。 |
m_List | 媒體範例佇列。 |
m_hSem | 執行緒用來等候樣本的號志控制碼。 |
m_evFlushComplete | 當排清作業完成時發出訊號的事件。 |
m_hThread | 背景工作執行緒的控制碼。 |
m_ppSamples | 大小為 COutputQueue::m_lBatchSize的樣本陣列。 |
m_nBatched | 目前批次處理和等候處理的樣本數目。 |
m_lWaiting | 當執行緒正在等候樣本時,具有非零值的旗標。 |
m_bFlushing | 旗標,指定物件是否正在執行排清作業。 |
m_bTerminate | 指定執行緒是否應該終止的旗標。 |
m_bSendAnyway | 覆寫批次處理的旗標。 |
m_hr | HRESULT 值,指出物件是否接受樣本。 |
m_hEventPop | 每當物件從佇列中移除範例時,就會發出訊號的事件。 |
保護方法 | Description |
InitialThreadProc | 建立執行緒時,呼叫 COutputQueue::ThreadProc 方法。 |
ThreadProc | 從佇列擷取樣本,並將其傳遞至輸入針腳。 |
IsQueued | 判斷物件是否使用背景工作執行緒來傳遞範例。 |
QueueSample | 將媒體範例或控制訊息排入佇列。 |
IsSpecialSample | 判斷佇列資料是否為控制訊息。 |
FreeSamples | 釋放所有擱置中的範例。 |
NotifyThread | 通知執行緒佇列包含資料。 |
公用方法 | Description |
COutputQueue | 建構函式方法。 |
~COutputQueue | 解構函式方法。 |
BeginFlush | 開始排清作業。 |
EndFlush | 結束排清作業。 |
EOS | 將串流結束呼叫傳遞至輸入針腳。 |
SendAnyway | 提供任何擱置的範例。 |
NewSegment | 將新的區段傳遞至輸入針腳。 |
接收 | 將媒體範例傳遞至輸入針腳。 |
ReceiveMultiple | 將一批媒體範例傳遞至輸入針腳。 |
重 置 | 重設 物件,使其可以接收更多資料。 |
IsIdle | 判斷物件是否正在等候資料。 |
SetPopEvent | 指定每當物件從佇列中移除範例時發出訊號的事件。 |
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|