次の方法で共有


IMFSourceReaderEx::AddTransformForStream メソッド (mfreadwrite.h)

オーディオ効果やビデオ効果などの変換をストリームに追加します。

構文

HRESULT AddTransformForStream(
  [in] DWORD    dwStreamIndex,
  [in] IUnknown *pTransformOrActivate
);

パラメーター

[in] dwStreamIndex

構成するストリーム。 値には、次のいずれかを指定できます。

意味
0 ~ 0xFFFFFFFB
ストリームの 0 から始まるインデックス。
MF_SOURCE_READER_FIRST_VIDEO_STREAM
0xFFFFFFFC
最初のビデオ ストリーム。
MF_SOURCE_READER_FIRST_AUDIO_STREAM
0xFFFFFFFD
最初のオーディオ ストリーム。

[in] pTransformOrActivate

次のいずれかを指すポインター。

  • IMFTransform インターフェイスを公開する Media Foundation 変換 (MFT)。
  • IMFActivate インターフェイスを公開する MFT アクティブ化 オブジェクト。

戻り値

このメソッドは、これらの値のいずれかを返すことができます。

リターン コード 説明
S_OK
正常終了しました。
MF_E_INVALIDMEDIATYPE
変換は現在のストリーム形式をサポートしていないため、変換できませんでした。 詳細については、「解説」を参照してください。
MF_E_INVALIDREQUEST
無効な要求です。
MF_E_INVALIDSTREAMNUMBER
dwStreamIndex パラメーターが無効です。

注釈

このメソッドは、現在の処理チェーンの末尾に変換を追加しようとします。

このメソッドを使用するには、次の一連の呼び出しを行います。

  1. IMFSourceReader::SetCurrentMediaType を呼び出して、ストリームに必要な出力の種類を設定します。 この手順では、メジャー型とサブタイプ GUID のみを含むメディアの種類を指定できます。 たとえば、32 ビット RGB 出力を取得するには、主要な種類の MFMediaType_VideoとMFVideoFormat_RGB32 のサブタイプを設定 します。 (詳細については、「 メディアの種類の GUID」を参照してください)。
  2. AddTransformForStream を呼び出します。 ソース リーダーが変換に正常に接続すると、変換の出力の種類が設定されます。
  3. IMFSourceReader::GetCurrentMediaType を呼び出して、変換から出力の種類を取得します。 このメソッドは、完全な書式の説明を含むメディアの種類を返します。
  4. 必要に応じて、出力の種類を変更する場合は、もう一度 IMFSourceReader::SetCurrentMediaType を呼び出して、変換に完全なメディアの種類を設定します。
AddTransformForStream メソッドは、デコーダーを処理チェーンに挿入しません。 ネイティブ ストリーム形式がエンコードされていて、変換に圧縮されていない形式が必要な場合は、 SetCurrentMediaType を呼び出して非圧縮形式を設定します (前のリストの手順 1)。 ただし、 メソッドは、必要に応じて、RGB 形式と YUV 形式の間で変換するビデオ プロセッサを挿入します。

ソース リーダーが MF_READWRITE_DISABLE_CONVERTERS または MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING 属性で構成されている場合、メソッドは失敗します

非同期モードでは、サンプル要求が保留中の場合、メソッドも失敗します。 その場合は、 OnReadSample コールバックが呼び出されるまで待ってから、 メソッドを呼び出します。 非同期モードでのソース リーダーの使用の詳細については、「 IMFSourceReader::ReadSample」を参照してください。

ストリーミング中はいつでも変換を追加できます。 ただし、 メソッドは、変換を挿入する前にパイプラインをフラッシュまたはドレインしません。 したがって、データがパイプラインに既に存在する場合、次のサンプルでは変換が適用されるとは限りません。

要件

要件
サポートされている最小のクライアント Windows 8 [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2012 [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー mfreadwrite.h

こちらもご覧ください

IMFSourceReaderEx

ソース リーダー