Freigeben über


IVMRFilterConfig::SetNumberOfStreams-Methode (strmif.h)

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Die SetNumberOfStreams -Methode legt die Anzahl der zu mischenden Streams fest und weist die VMR an, in den Mixermodus zu wechseln.

Syntax

HRESULT SetNumberOfStreams(
  [in] DWORD dwMaxStreams
);

Parameter

[in] dwMaxStreams

Doppeltes Wort, das die maximale Anzahl von Eingabedatenströmen enthält, die der VMR mischen muss. Darf nicht größer als MAX_MIXER_STREAMS sein (16).

Rückgabewert

Wenn die Methode erfolgreich ist, wird S_OK zurückgegeben. Bei einem Fehler wird ein Fehlercode zurückgegeben.

Rückgabecode Beschreibung
E_FAIL
Der Mixer ist bereits konfiguriert.
E_INVALIDARG
Es wurde versucht, den Mixer für mehr als 16 Eingabedatenströme zu konfigurieren.
E_OUTOFMEMORY
Arbeitsspeicher zum Verwalten der Streams konnte nicht zugewiesen werden.

Hinweise

dwMaxStreams sollte der Anzahl der erforderlichen Eingabenadeln entsprechen. Pins können nicht hinzugefügt oder entfernt werden, nachdem der VMR verbunden wurde. Wenn Sie im Voraus nicht wissen, wie viele Eingabedatenströme erforderlich sind, legen Sie dxMaxStreams auf die maximal erforderliche Anzahl fest. Der Wert 1 ist für dwMaxStreams gültig. Dieser Wert führt nicht dazu, dass zusätzliche Pins erstellt werden, erzwingt jedoch, dass die VMR in den "Mixermodus" wechselt. Daher können Sie nach dem Aufrufen dieser Methode Nicht mehr SetRenderingMode aufrufen, um den Modus auf VMRMode_Renderless

Der VMR erstellt so viele Eingabenadeln wie angegeben, ohne zu ermitteln, ob genügend Videospeicher vorhanden ist, um sie alle zu unterstützen. Dies liegt daran, dass es derzeit keine Möglichkeit hat, den Medientyp oder die Rechteckdimensionen zu kennen. Wenn später ein Upstream-Filter versucht, eine Verbindung mit einem Pin herzustellen, ist der Medientyp zu diesem Zeitpunkt bekannt, und der VMR untersucht den Videospeicher und schlägt die Verbindung fehl, wenn nicht genug vorhanden ist, um den Stream zu verarbeiten.

Hinweis Obwohl die VMR mehrere Datenströme unterstützt, verwenden sie alle eine einzelne Uhr, sodass Sie keinen Stream unabhängig von den anderen abrufen können. Wenn Sie die Eingabedatenströme unabhängig suchen müssen, müssen Sie ein anderes Verfahren verwenden. Weitere Informationen finden Sie im VMRMulti-Beispiel.
 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP mit SP1 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile strmif.h (include Dshow.h)
Bibliothek Strmiids.lib

Weitere Informationen

Fehler- und Erfolgscodes

IVMRFilterConfig-Schnittstelle

IVMRFilterConfig::GetNumberOfStreams

Verwenden des Videomischrenderers