IVMRFilterConfig9::SetNumberOfStreams
SetNumberOfStreams メソッドは、ミキシングするストリームの数を設定し、VMR にミキサー モードに移行するように指示する。
構文
HRESULT SetNumberOfStreams(
DWORD dwMaxStreams
);
パラメータ
dwMaxStreams
[in] ミキシングに VMR を必要とする入力ストリームの最大数を格納する DWORD 型の値。
戻り値
メソッドは、HRESULT を返す。可能な値は次の一覧のとおりである。
値 | 説明 |
S_OK | メソッドが成功した。 |
E_FAIL | ミキサーは既に構成されている。 |
E_INVALIDARG | 16 を超える入力ストリームに対してミキサーを構成しようとした。 |
E_OUTOFMEMORY | ストリームを管理するためのメモリを割り当てられなかった。 |
注意
dwMaxStreams は、必要な入力ピンの数と同じでなければならない。VMR が接続された後では、ピンは追加も削除もできない。事前に必要な入力ストリーム数がわからないときは、dxMaxStreams を最大限必要となる数に設定すること。1 の値は dwMaxStreams には有効である。この値を設定しても追加ピンは作成されないが、VMR を "ミキサー モード" に強制的に移行する。
VMR は、指定された数だけ入力ピンを作成するが、それらのピンをすべてサポートできるだけのビデオ メモリがあるかどうかを判断しようとはしない。これは、この時点ではメディア タイプや矩形のディメンジョンを知る方法がないからである。後で、アップストリーム フィルタがピンに接続しようとすると、その時点ではメディア タイプがわかるので、VMR はビデオ メモリを調べて、ストリームを処理できる十分なメモリがない場合は接続を失敗させる。
注 : VMR は複数のストリームをサポートしているが、それらのストリームは 1 つのクロックを共有しているので、あるストリームを個別にはシークできない。入力ストリームを個別にシークする必要がある場合は、別の手法を使う必要がある。詳細については、VMRMulti サンプルを参照すること。
要件
D3d9.h、Vmr9.h をインクルードすること。
参照