IAMStreamConfig::SetFormat 方法 (strmif.h)
[與此頁面相關的功能 DirectShow 是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine 和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft 強烈建議新程式代碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式代碼盡可能重寫為使用新的 API。
方法 SetFormat
會在針腳上設定輸出格式。
語法
HRESULT SetFormat(
[in] AM_MEDIA_TYPE *pmt
);
參數
[in] pmt
指定新格式 之AM_MEDIA_TYPE 結構的指標。
傳回值
傳回 HRESULT 值。 可能的值如下。
傳回碼 | 描述 |
---|---|
|
成功。 |
|
記憶體不足。 |
|
NULL 指標值。 |
|
此媒體類型無效。 |
|
輸入針腳未連接。 |
|
無法設定類型;篩選條件未停止。 |
|
無法設定類型;篩選條件未停止。 |
備註
這個方法會指定輸出針腳的格式。 如果針腳未連線,則會針對下一個連線使用此格式。 如果針腳已連線,它會嘗試使用此格式重新連線。 如果另一個針腳拒絕新的類型,此方法可能會失敗。
如果這個方法成功, 後續對IPin::EnumMediaTypes 方法的呼叫將會傳回新的類型,而沒有其他方法。
在大部分的篩選上,如果篩選已暫停或執行,這個方法就會失敗。 在某些壓縮篩選條件上,如果篩選條件的輸入針腳未連線,方法就會失敗。
使用某些篩選條件,您可以使用 NULL 值呼叫這個方法,將針腳重設為其預設格式。
篩選開發人員:下列備註說明如何實作此方法:
如果輸出針腳未連線,而且該針腳支援指定的媒體類型,請傳回S_OK。 儲存媒體類型,並在 CBasePin::GetMediaType 方法中將其提供為零格式。 請勿提供其他格式,並在 CBasePin::CheckMediaType 方法中拒絕其他格式。
如果針腳已連線,且針腳支持媒體類型,請重新連接該類型的針腳。 如果另一個針腳拒絕新的類型,請傳回VFW_E_INVALIDMEDIATYPE並還原原始連線。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | strmif.h (包含 Dshow.h) |
程式庫 | Strmiids.lib |