IMFSourceReaderEx::AddTransformForStream メソッド (mfreadwrite.h)
オーディオ効果やビデオ効果などの変換をストリームに追加します。
構文
HRESULT AddTransformForStream(
[in] DWORD dwStreamIndex,
[in] IUnknown *pTransformOrActivate
);
パラメーター
[in] dwStreamIndex
構成するストリーム。 値には、次のいずれかを指定できます。
値 | 意味 |
---|---|
|
ストリームの 0 から始まるインデックス。 |
|
最初のビデオ ストリーム。 |
|
最初のオーディオ ストリーム。 |
[in] pTransformOrActivate
次のいずれかを指すポインター。
- IMFTransform インターフェイスを公開する Media Foundation 変換 (MFT)。
- IMFActivate インターフェイスを公開する MFT アクティブ化 オブジェクト。
戻り値
このメソッドは、これらの値のいずれかを返すことができます。
リターン コード | 説明 |
---|---|
|
正常終了しました。 |
|
変換は現在のストリーム形式をサポートしていないため、変換できませんでした。 詳細については、「解説」を参照してください。 |
|
無効な要求です。 |
|
dwStreamIndex パラメーターが無効です。 |
注釈
このメソッドは、現在の処理チェーンの末尾に変換を追加しようとします。
このメソッドを使用するには、次の一連の呼び出しを行います。
- IMFSourceReader::SetCurrentMediaType を呼び出して、ストリームに必要な出力の種類を設定します。 この手順では、メジャー型とサブタイプ GUID のみを含むメディアの種類を指定できます。 たとえば、32 ビット RGB 出力を取得するには、主要な種類の MFMediaType_VideoとMFVideoFormat_RGB32 のサブタイプを設定 します。 (詳細については、「 メディアの種類の GUID」を参照してください)。
- 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 |