Freigeben über


CDynamicOutputPin.ChangeMediaType-Methode

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Die ChangeMediaType -Methode ändert dynamisch den Medientyp für die Verbindung. Die Änderung kann auftreten, während das Filterdiagramm ausgeführt wird. Nachdem diese Methode aufgerufen wurde, können keine Beispiele mit dem alten Medientyp übermittelt werden. Der Aufrufer muss sicherstellen, dass keine alten Beispiele ausstehen.

Syntax

HRESULT ChangeMediaType(
   const CMediaType *pmt
);

Parameter

Pmt

Zeiger auf eine AM_MEDIA_TYPE Struktur, die den Medientyp angibt.

Rückgabewert

Gibt einen HRESULT-Wert zurück. Mögliche Werte sind die in der folgenden Tabelle gezeigten Werte.

Rückgabecode BESCHREIBUNG
S_OK
Erfolg.
E_FAIL
Fehler. Möglicherweise hat der besitzende Filter CDynamicOutputPin::SetConfigInfo nicht aufgerufen.
VFW_E_NOT_CONNECTED
Der Pin ist nicht verbunden.

Bemerkungen

Rufen Sie die CDynamicOutputPin::StartUsingOutputPin-Methode auf, bevor Sie diese Methode aufrufen.

Diese Methode überprüft zunächst, ob der nachgeschaltete Eingabepin das neue Format akzeptieren kann, ohne die Verbindung wiederherzustellen. Er fragt den Eingabenadel für die IPinConnection-Schnittstelle ab. Wenn der Eingabenadel IPinConnection unterstützt, ruft die Methode die IPinConnection::D ynamicQueryAccept-Methode mit dem vorgeschlagenen Medientyp auf. Wenn der Eingabenadel den neuen Medientyp akzeptiert, ruft die Methode die IPin::ReceiveConnection-Methode auf und verhandelt die Zuweisungsanforderungen neu.

Wenn der Downstream-Pin hingegen IPinConnection nicht unterstützt oder den neuen Medientyp ablehnt, ruft die Methode die CDynamicOutputPin::D ynamicReconnect-Methode auf, um eine dynamische erneute Verbindung durchzuführen.

Anforderungen

Anforderung Wert
Header
Amfilter.h (streams.h einschließen)
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)

Siehe auch

CDynamicOutputPin-Klasse