次の方法で共有


MFCreateSampleCopierMFT 関数 (mfidl.h)

サンプル コピーャー変換のインスタンスを作成します。

構文

HRESULT MFCreateSampleCopierMFT(
  [out] IMFTransform **ppCopierMFT
);

パラメーター

[out] ppCopierMFT

IMFTransform インターフェイスへのポインターを受け取ります。 呼び出し元はインターフェイスを解放する必要があります。

戻り値

この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。

解説

サンプル コピー機は、データを変更せずに入力サンプルから出力サンプルにデータをコピーする Media Foundation 変換 (MFT) です。 サンプルから次のデータがコピーされます。

  • すべての サンプル属性
  • タイム スタンプと期間。
  • サンプル フラグ ( 「IMFSample::SetSampleFlags」を参照)。
  • メディア バッファー内のデータ。 入力サンプルに複数のバッファーが含まれている場合、データは出力サンプルの 1 つのバッファーにコピーされます。
この MFT は、次の状況で役立ちます。
  • メディア ソースなどの 1 つのパイプライン オブジェクトは、出力用にメディア サンプルを割り当てます。
  • メディア シンクなどの別のパイプライン オブジェクトは、独自のメディア サンプルを入力用に割り当てます。 たとえば、オブジェクトには、ビデオ メモリなどの特殊なメモリ プールから割り当てられたバッファーが必要な場合があります。
次の図は、メディア ソースとメディア シンクでこのような状況を示しています。 図: メディア ソースはサンプルを指します。メディア シンクは 2 つ目のサンプルを指します。サンプル コピー機は、最初のサンプルから 2 番目のサンプルへの矢印を指します

メディア シンクがメディア ソースからデータを受信するには、メディア シンクが所有するメディア サンプルにデータをコピーする必要があります。 サンプル コピー機は、この目的で使用できます。

このようなメディア シンクの具体的な例として、 拡張ビデオ レンダラー (EVR) があります。 EVR は Direct3D サーフェス バッファーを含むサンプルを割り当てます。そのため、メディア ソースからビデオ サンプルを直接受信することはできません。 Windows 7 以降では、トポロジ ローダーはメディア ソースと EVR の間にサンプル コピー機を挿入することで、このケースを自動的に処理します。

要件

   
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー mfidl.h
Library Mf.lib
[DLL] Mf.dll

関連項目

メディア ファンデーション機能