CDynamicOutputPin.StartUsingOutputPin 方法
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
方法 StartUsingOutputPin
會取得串流作業之針腳的存取權。
語法
virtual HRESULT StartUsingOutputPin();
參數
這個方法沒有任何參數。
傳回值
傳回 HRESULT 值。 可能的值包括下表所示的值。
傳回碼 | 描述 |
---|---|
|
成功。 |
|
非預期的錯誤。 |
|
篩選已停止,或針腳已開始排清。 |
備註
呼叫任何將資料傳遞至已連線輸入釘選或變更連線媒體類型的方法之前,請先呼叫這個方法。 例如,此規則適用于下列方法:
- CDynamicOutputPin::ChangeOutputFormat
- CDynamicOutputPin::ChangeMediaType
- CDynamicOutputPin::D ynamicReconnect
- CBaseOutputPin::D eliver
- CBaseOutputPin::D eliverEndOfStream
- CBaseOutputPin::D eliverNewSegment
- IMemInputPin::Receive
- IMemInputPin::ReceiveMultiple
- IPin::EndOfStream
- IPin::NewSegment
之後,呼叫 CDynamicOutputPin::StopUsingOutputPin 方法以釋放對針腳的存取權。
如果釘選遭到封鎖, StartUsingOutputPin
請等候針腳解除封鎖。 如果篩選準則在方法等候時停止,方法會立即傳回VFW_E_STATE_CHANGED。 針腳會維護未呼叫StopUsingOutputPin的對應呼叫次數 StartUsingOutputPin
計數。 如果另一個執行緒嘗試封鎖此計數為非零的針腳,則針腳會將其封鎖狀態設定為「擱置中」。在 停止UsingOutputPin的最終呼叫中,所有串流作業都完成之後,釘選就會變成封鎖狀態。
當您呼叫此方法時,請勿保留 CDynamicOutputPin::m_BlockStateLock critical 區段。 否則,如果釘選遭到封鎖,則永遠不會變成解除封鎖,導致死結。
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|