Microsoft DirectX 8.0 |
IAMMediaStream インターフェイスは、マルチメディア ストリーミングを使用するアプリケーションでの Microsoft® DirectShow® フィルタとフィルタ グラフとの内部的な接続を処理する。このインターフェイスを使用すると、ソースからアプリケーションに渡されるデータの転送と変換が自動的にネゴシエートされ、データ転送、データ変換、および実際のデータ レンダリングやファイル格納を処理するコードを作成せずに、簡単にデータを再生できる。このインターフェイスは、データのアクセスと制御のために、均一で理解しやすい手段を提供する。
このインターフェイスは、アプリケーション開発者による実装または使用を目的としたものではない。
IUnknown メソッド 説明 QueryInterface サポートされているインターフェイスへのポインタを取得する。 AddRef 参照カウントをインクリメントする。 Release 参照カウントをデクリメントする。 IAMMediaStream メソッド 説明 Initialize 指定されたストリーム タイプおよび目的 ID を持つ新しいメディア ストリームを作成および初期化する。 SetState フィルタの状態を設定する。 JoinAMMultiMediaStream 指定されたメディア ストリームを現在のマルチメディア ストリームに追加する。IAMMultiMediaStream::AddMediaStream メソッドはこのメソッドを呼び出す。 JoinFilter 基盤となるフィルタ グラフ内のメディア ストリーム フィルタにメディア ストリームを接続する。 JoinFilterGraph メディア ストリーム フィルタをフィルタ グラフに接続する。
指定されたストリーム タイプおよび目的 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 ポインタの可能性がある。
指定されたメディア ストリームを現在のマルチメディア ストリームに追加する。IAMMultiMediaStream::AddMediaStream メソッドはこのメソッドを呼び出す。
構文
HRESULT JoinAMMultiMediaStream( IAMMultiMediaStream *pAMMultiMediaStream );
パラメータ
- pAMMultiMediaStream
- [in] 現在のメディア ストリームを追加する IAMMultiMediaStream オブジェクトへのポインタ。
戻り値
成功した場合は、S_OK を返す。メディア ストリームに既に割り当て済みのストリーム サンプルがある場合は、MS_E_SAMPLEALLOC を返す。
注意
提供するマルチメディア ストリームの参照カウントは、作成時に処理されているので、インクリメントしないこと。
アプリケーションからこのメソッドを呼び出さないこと。
基盤となるフィルタ グラフ内のメディア ストリーム フィルタにメディア ストリームを接続する。
構文
HRESULT JoinFilter( );
戻り値
成功した場合は、S_OK を返す。
注意
指定するメディア ストリーム フィルタの参照カウントはインクリメントしないこと。
アプリケーションからこのメソッドを呼び出さないこと。
メディア ストリーム フィルタをフィルタ グラフに接続する。
構文
HRESULT JoinFilterGraph( IFilterGraph *pGraph );
パラメータ
- pGraph
- [in] 指定されたフィルタ グラフに追加する現在のメディア ストリーム フィルタへのポインタ。
戻り値
成功した場合は、S_OK を返す。pGraph が NULL の場合は、E_POINTER を返す。
注意
指定するフィルタ グラフの参照カウントはインクリメントしないこと。
アプリケーションからこのメソッドを呼び出さないこと。
フィルタの状態を設定する。
構文
HRESULT SetState( FILTER_STATE State );
パラメータ
- State
- [in] フィルタの状態を設定する。状態は FILTER_STATE 列挙型で指定される。
戻り値
成功した場合は、S_OK を返す。State パラメータが無効な場合は、E_INVALIDARG を返す。
注意
アプリケーションからこのメソッドを呼び出さないこと。