メディア サンプル (Microsoft Media Foundation)

メディア サンプルは、0 個以上のバッファーの順序付きリストを含むオブジェクトです。 メディア サンプルは、 IMFSample インターフェイスを公開します。 1 つのサンプルに含まれるデータの量は、サンプルを作成するコンポーネントとバッファー内のデータの種類によって異なります。 圧縮されていないビデオの場合、サンプルは通常、1 つのビデオ フレームを保持します。 非圧縮オーディオの場合、データの量は異なる場合がありますが、通常、オーディオ フレームは 2 つのサンプルにまたがりません。 圧縮データの場合、これらのガイドラインは適用されない場合があります。

1 つのサンプルに、効率の理由から複数のバッファーが含まれている場合があります。 たとえば、ASF ファイルでは、多くの場合、ビデオ フレームが複数の ASF パケットに分散されます。 メディア ソースは、パケットを複数のバッファーに読み取る場合があります。 各フラグメントを 1 つのバッファーにコピーする代わりに、ソースはすべてのバッファーを単に 1 つのサンプルに配置します。 その後、ダウンストリーム コンポーネントは、小さいバッファーを 1 つの連続したバッファーにコピーするかどうかを決定できます。 一般に、パイプライン コンポーネントを記述する場合は、サンプルに複数のバッファーが含まれている可能性があると想定する必要があります。

このセクションでは、次のトピックを扱います。

トピック 説明
メディア サンプルの操作 メディア サンプルの一般的な動作について説明します。
ビデオ サンプル 圧縮されていないビデオ フレームを保持するために設計された IMFSample の特殊な実装について説明します。

 

メディア バッファー

Media Foundation プリミティブ