IMFSourceReaderEx::AddTransformForStream 方法 (mfreadwrite.h)
將音訊或視訊效果等轉換新增至數據流。
語法
HRESULT AddTransformForStream(
[in] DWORD dwStreamIndex,
[in] IUnknown *pTransformOrActivate
);
參數
[in] dwStreamIndex
要設定的數據流。 此值可以是下列任一項。
值 | 意義 |
---|---|
|
數據流以零起始的索引。 |
|
第一個視訊串流。 |
|
第一個音訊數據流。 |
[in] pTransformOrActivate
下列其中一項的指標:
- 媒體基礎轉換 (公開 IMFTransform 介面的 MFT) 。
- 公開 IMFActivate 介面的 MFT 啟用物件。
傳回值
這個方法可以傳回其中一個值。
傳回碼 | 描述 |
---|---|
|
成功。 |
|
轉換不支援目前的數據流格式,而且無法進行轉換。 如需詳細資訊,請參閱「備註」。 |
|
無效的要求 |
|
dwStreamIndex 參數無效。 |
備註
這個方法會嘗試在目前處理鏈結的結尾新增轉換。
若要使用此方法,請進行下列一連串的呼叫:
- 呼叫 IMFSourceReader::SetCurrentMediaType 來設定您想要用於數據流的輸出類型。 在此步驟中,您可以指定只包含主要類型和子類型 GUID 的媒體類型。 例如,若要取得 32 位 RGB 輸出,請設定 主要類型的MFMediaType_Video 和 MFVideoFormat_RGB32子類型。 (如需詳細資訊,請參閱 媒體類型 GUIDs.)
- 呼叫 AddTransformForStream。 如果來源讀取器成功連接轉換,它會在轉換上設定輸出類型。
- 呼叫 IMFSourceReader::GetCurrentMediaType 以從轉換取得輸出類型。 這個方法會傳回具有完整格式描述的媒體類型。
- 或者,如果您想要修改輸出類型,請再次呼叫 IMFSourceReader::SetCurrentMediaType ,在轉換上設定完整的媒體類型。
如果來源讀取器已設定 MF_READWRITE_DISABLE_CONVERTERS 或 MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING 屬性,則方法會失敗。
在異步模式中,如果範例要求擱置,方法也會失敗。 在此情況下,請先等候 OnReadSample 回呼叫用,再呼叫 方法。 如需在異步模式中使用來源讀取器的詳細資訊,請參閱 IMFSourceReader::ReadSample。
您可以在串流期間隨時新增轉換。 不過,方法不會在插入轉換之前排清或清空管線。 因此,如果數據已經在管線中,則不保證下一個範例會套用轉換。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2012 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | mfreadwrite.h |