マルチメディア ストリーミング インターフェイスの一覧
マルチメディア ストリーミングは、多数のインターフェイスから成り立っている。ここでは、個々のインターフェイスについて簡単に説明する。マルチメディア ストリーミングの詳細については、「マルチメディア ストリーミング アーキテクチャについて」を参照すること。
以下の項で構成される。
基本のマルチメディア ストリーミング インターフェイスは、マルチメディア ストリームにアクセスするための 1 つのプログラム手段である。ただし、基本インターフェイスを使って特定タイプのデータにアクセスする場合、データを制御できる範囲がある程度制限される可能性がある。したがって、メディア開発者は、メディア タイプ固有の能力をより強力に制御するため、これらのインターフェイスを基に、派生インターフェイスを作成しなければならない。
- IMultiMediaStream
- 最上位レベルのマルチメディア ストリーム オブジェクトへのアクセス方法を定義する。このオブジェクトは、ほかのストリーム オブジェクトを含み、それらのオブジェクトへのアクセスを提供する。IMultiMediaStream には、ストリームの総時間幅を確認し、ストリーム内のシークを行うメソッドだけでなく、個々のストリームを列挙または取得するメソッドも用意されている。
- IMediaStream
- 汎用のストリーム オブジェクトを定義する。このインターフェイスのメソッドを使用して、ストリームへのポインタを取得し、ストリームに関する情報を取得し、ストリーム データからサンプルを作成する。また、共有ストリーム サンプルを作成することもできる。共有ストリーム サンプルとは、サンプルのデータを複製せずに複数のストリームからアクセスできるサンプルである。
- IStreamSample
- 個々のストリーム サンプルの動作を制御する。サンプルを作成したストリームを取得し、サンプルの開始タイム、終了タイム、および完了状態を確認し、(Update メソッドを通じて) サンプル自体にユーザー定義関数を実行することができる。通常、Update メソッドでは、ビデオ データであればレンダリングし、オーディオ データであれば再生するなど、適切な方法でサンプル データが処理される。
ストリーム内で Microsoft® DirectDraw® がサポートするビデオ フォーマットを使う場合には、以下のインターフェイスを使用すると、汎用の基本インターフェイスより強力にデータを制御できる。
- IDirectDrawMediaStream
- メディア ストリームに関連付けられたストリーム フォーマットおよび DirectDraw オブジェクトを設定および取得する。このインターフェイスは IMediaStream から派生する。このインターフェイスを使用して、ビデオ サンプルを作成することもできる。
- IDirectDrawStreamSample
- このインターフェイスを使用すると、DirectDraw サーフェスにビデオ サンプルをアタッチできる。このインターフェイスは IStreamSample インターフェイスから派生する。レンダリングしやすくするため、アタッチされたサーフェスそれぞれにクリッピング矩形が含まれる。
- IAudioMediaStream
- オーディオ メディア ストリームを制御する。このインターフェイスは、IMediaStream インターフェイスを継承し、1 つ以上の IAudioStreamSample オブジェクトを作成するために使用される。また、ストリーム データの現在のフォーマットを設定および取得するためにも使用される。
- IAudioStreamSample
- 基盤となる IAudioData データ オブジェクトから情報を取得する。
- IMemoryData
- オーディオ データ オブジェクト上のメモリ データを設定および取得するメソッドが含まれる。オーディオ データ オブジェクトは、ストリーム サンプルがアクセスする、基盤となるデータを提供するものである。このインターフェイスは、メモリ バッファを初期化し、実際にオブジェクト内にあるオーディオ データの量を設定する手段を提供する。また、IMemoryData::GetInfo メソッドを使用すると、オーディオ メモリ データを取得できる。
- IAudioData
- アプリケーションから、オーディオ ストリームから参照される、基盤となるオーディオ データを設定および取得するためのメソッドを提供する。オーディオ データのフォーマットは、WAVEFORMATEX 構造体に設定される。
以下のインターフェイスは、マルチメディア ストリーム開発者に Microsoft® DirectShow® の機能を公開する。アプリケーション開発者は、アプリケーション内で IAMMultiMediaStream インターフェイスだけを実装しなければならない。ほかの 2 つのインターフェイスは、DirectShow が内部的に使用する。
- IAMMultiMediaStream
- ストリームおよび DirectShow フィルタ グラフ間の接続を制御する。このインターフェイスは、フィルタ グラフをインスタンス化し、DirectShow がサポートするメディア ファイルを開き、再生用の適切なフィルタ グラフを生成するメソッドを提供する。クラス識別子 CLSID_ActiveMovieMMStream は、このインターフェイスをサポートする。
- IAMMediaStream
- マルチメディア ストリームおよび DirectShow フィルタ グラフ間の接続の内部的なネゴシエーションを処理する。このインターフェイスは、IMediaStream インターフェイスから派生した DirectShow 固有のインターフェイスである。アプリケーションからこのインターフェイスを使用または実装してはならない。