Microsoft DirectX 8.0

IAMMediaStream インターフェイス

IAMMediaStream インターフェイスは、マルチメディア ストリーミングを使用するアプリケーションでの Microsoft® DirectShow® フィルタとフィルタ グラフとの内部的な接続を処理する。このインターフェイスを使用すると、ソースからアプリケーションに渡されるデータの転送と変換が自動的にネゴシエートされ、データ転送、データ変換、および実際のデータ レンダリングやファイル格納を処理するコードを作成せずに、簡単にデータを再生できる。このインターフェイスは、データのアクセスと制御のために、均一で理解しやすい手段を提供する。

このインターフェイスは、アプリケーション開発者による実装または使用を目的としたものではない。

vtable 順のメソッド

IUnknown メソッド説明
QueryInterface サポートされているインターフェイスへのポインタを取得する。
AddRef 参照カウントをインクリメントする。
Release 参照カウントをデクリメントする。
IAMMediaStream メソッド説明
Initialize 指定されたストリーム タイプおよび目的 ID を持つ新しいメディア ストリームを作成および初期化する。
SetState フィルタの状態を設定する。
JoinAMMultiMediaStream 指定されたメディア ストリームを現在のマルチメディア ストリームに追加する。IAMMultiMediaStream::AddMediaStream メソッドはこのメソッドを呼び出す。
JoinFilter 基盤となるフィルタ グラフ内のメディア ストリーム フィルタにメディア ストリームを接続する。
JoinFilterGraph メディア ストリーム フィルタをフィルタ グラフに接続する。

IAMMediaStream::Initialize

IAMMediaStream インターフェイス

指定されたストリーム タイプおよび目的 ID を持つ新しいメディア ストリームを作成および初期化する。

構文

HRESULT Initialize(
    IUnknown *pSourceObject,
    DWORD dwFlags,
    REFMSPID PurposeID,
    STREAM_TYPE StreamType
    );

パラメータ

pSourceObject
[in] IUnknown ソース オブジェクトへのポインタ。
dwFlags
[in] メディア ストリームの動作を修正する、以下の値を 1 つ以上組み合わせた値。
AMMSF_ADDDEFAULTRENDERER デフォルトのレンダラを追加する。
AMMSF_CREATEPEER pStreamObject と同じオブジェクトに基づくピア ストリームを作成する。
AMMSF_STOPIFNOSAMPLES サンプルが 1 つも作成されていない場合、または最後のサンプルが削除された場合には、ストリームを終了する。
AMMSF_NOSTALL Update が呼び出されなくてもストリームを実行する。
PurposeID
[in] 新しいメディア ストリームの目的 ID。
StreamType
[in] 新しいメディア ストリームのメディア タイプを指定する STREAM_TYPE 列挙値。

戻り値

成功した場合は、S_OK を返す。無効な必須パラメータがある場合は、E_POINTER を返す。

注意

dwFlags に AMMSF_ADDDEFAULTRENDERER を指定すると、指定された目的 ID のデフォルト レンダラが作成される (可能な場合)。現時点では、Microsoft® DirectSound® を使用するオーディオのデフォルト レンダラのみがサポートされる。この場合、pStreamObject パラメータは NULL である必要があり、IMultiMediaStream::GetMediaStream メソッドまたは IMultiMediaStream::EnumMediaStreams メソッドの呼び出しではストリームが認識されない。

dwFlags に AMMSF_CREATEPEER を指定すると、pStreamObject を使用してメディア ストリームが作成され、そのメディア ストリームが現在のマルチメディア ストリームに追加される。pStreamObject パラメータはストリーム タイプによって異なる。通常、pStreamObject には IMediaStream オブジェクトへのポインタを指定できる。この場合、サンプルと同じ目的 ID およびフォーマットを持つストリームが作成される。IDirectDraw ストリームの場合には、IDirectDraw オブジェクトへのポインタも指定できる。

dwFlags に AMMSF_STOPIFNOSAMPLES を指定すると、ストリームが終了される。

フラグが 1 つもセットされていない場合、pStreamObject は次のいずれかの値をとる。
IAMMediaStream オブジェクト この場合、このストリームはマルチメディア ストリーム内のストリームに追加される。
NULL この場合、デフォルトの IMediaStream オブジェクトが、基盤となるデフォルトのオブジェクトを持つストリームに追加される (必要な場合)。
基盤となるオブジェクトへのポインタ このポインタを使用して、デフォルト ストリームが構築される。ビデオ ストリームの場合には、IDirectDraw ポインタの可能性がある。

IAMMediaStream::JoinAMMultiMediaStream

IAMMediaStream インターフェイス

指定されたメディア ストリームを現在のマルチメディア ストリームに追加する。IAMMultiMediaStream::AddMediaStream メソッドはこのメソッドを呼び出す。

構文

HRESULT JoinAMMultiMediaStream(
    IAMMultiMediaStream *pAMMultiMediaStream
    );

パラメータ

pAMMultiMediaStream
[in] 現在のメディア ストリームを追加する IAMMultiMediaStream オブジェクトへのポインタ。

戻り値

成功した場合は、S_OK を返す。メディア ストリームに既に割り当て済みのストリーム サンプルがある場合は、MS_E_SAMPLEALLOC を返す。

注意

提供するマルチメディア ストリームの参照カウントは、作成時に処理されているので、インクリメントしないこと。

アプリケーションからこのメソッドを呼び出さないこと。

IAMMediaStream::JoinFilter

IAMMediaStream インターフェイス

基盤となるフィルタ グラフ内のメディア ストリーム フィルタにメディア ストリームを接続する。

構文

HRESULT JoinFilter( );

戻り値

成功した場合は、S_OK を返す。

注意

指定するメディア ストリーム フィルタの参照カウントはインクリメントしないこと。

アプリケーションからこのメソッドを呼び出さないこと。

IAMMediaStream::JoinFilterGraph

IAMMediaStream インターフェイス

メディア ストリーム フィルタをフィルタ グラフに接続する。

構文

HRESULT JoinFilterGraph(
    IFilterGraph *pGraph
    );

パラメータ

pGraph
[in] 指定されたフィルタ グラフに追加する現在のメディア ストリーム フィルタへのポインタ。

戻り値

成功した場合は、S_OK を返す。pGraph が NULL の場合は、E_POINTER を返す。

注意

指定するフィルタ グラフの参照カウントはインクリメントしないこと。

アプリケーションからこのメソッドを呼び出さないこと。

IAMMediaStream::SetState

IAMMediaStream インターフェイス

フィルタの状態を設定する。

構文

HRESULT SetState(
    FILTER_STATE State
    );

パラメータ

State
[in] フィルタの状態を設定する。状態は FILTER_STATE 列挙型で指定される。

戻り値

成功した場合は、S_OK を返す。State パラメータが無効な場合は、E_INVALIDARG を返す。

注意

アプリケーションからこのメソッドを呼び出さないこと。