次の方法で共有


IVMRFilterConfig::SetNumberOfStreams メソッド (strmif.h)

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayerIMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

メソッドは SetNumberOfStreams 、混合するストリームの数を設定し、ミキサー モードに移行するように VMR に指示します。

構文

HRESULT SetNumberOfStreams(
  [in] DWORD dwMaxStreams
);

パラメーター

[in] dwMaxStreams

組み合わせに VMR が必要とする入力ストリームの最大数を含む 2 つの単語。 MAX_MIXER_STREAMS (16) より大きくすることはできません。

戻り値

メソッドが成功した場合は、S_OK を返します。 失敗した場合はエラー コードを返します。

リターン コード 説明
E_FAIL
ミキサーは既に構成されています。
E_INVALIDARG
16 を超える入力ストリームに対してミキサーを構成しようとしました。
E_OUTOFMEMORY
ストリームを管理するメモリを割り当てませんでした。

注釈

dwMaxStreams は、必要な入力ピンの数と同じである必要があります。 VMR が接続された後は、ピンを追加または削除できません。 必要な入力ストリームの数が事前にわからない場合は、 dxMaxStreams を必要な最大数に設定します。 値 1 は dwMaxStreams に対して有効です。 この値を指定しても、余分なピンは作成されませんが、VMR は強制的に "ミキサー モード" になります。したがって、このメソッドが呼び出されると、SetRenderingMode を呼び出してモードを VMRMode_Renderless に設定することはできません。

VMR は、指定された数の入力ピンを作成します。すべてのピンをサポートするのに十分なビデオ メモリがあるかどうかを判断する必要はありません。 これは、現時点ではメディアの種類や四角形のディメンションを知る方法がないためです。 その後、アップストリーム フィルターがピンへの接続を試みると、その時点でメディアの種類がわかっており、ストリームを処理するのに十分でない場合、VMR はビデオ メモリを調べて接続に失敗します。

メモ VMR は複数のストリームをサポートしていますが、それらはすべて 1 つのクロックを共有するため、他のストリームとは独立して 1 つのストリームをシークすることはできません。 入力ストリームを個別にシークする必要がある場合は、別の手法を使用する必要があります。 詳細については、VMRMulti サンプルを参照してください。
 

要件

要件
サポートされている最小のクライアント SP1 を使用した Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー strmif.h (Dshow.h を含む)
Library Strmiids.lib

こちらもご覧ください

エラーコードと成功コード

IVMRFilterConfig インターフェイス

IVMRFilterConfig::GetNumberOfStreams

ビデオ 混合レンダラーの使用