Freigeben über


CDynamicOutputPin.ChangeOutputFormat-Methode

[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 ChangeOutputFormat Methode ändert dynamisch den Medientyp für die Verbindung und liefert neue Segmentinformationen. Die Änderung kann auftreten, während das Filterdiagramm ausgeführt wird. Sobald diese Methode aufgerufen wird, können Beispiele mit dem alten Medientyp nicht mehr übermittelt werden. Der Aufrufer muss sicherstellen, dass keine alten Beispiele ausstehen.

Syntax

HRESULT ChangeOutputFormat(
   const AM_MEDIA_TYPE  *pmt,
         REFERENCE_TIME tSegmentStart,
         REFERENCE_TIME tSegmentStop,
         double         dSegmentRate
);

Parameter

Pmt

Zeiger auf eine AM_MEDIA_TYPE-Struktur , die den Medientyp angibt.

tSegmentStart

Startzeit des Segments.

tSegmentStop

Stoppzeit des Segments.

dSegmentRate

Segmentrate.

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 Besitzerfilter CDynamicOutputPin::SetConfigInfo nicht aufgerufen.
VFW_E_NOT_CONNECTED
Der Pin ist nicht verbunden.

Bemerkungen

Diese Methode ändert den Formattyp, während der Filter ausgeführt wird. Wenn der Downstream-Pin das neue Format akzeptiert, ist keine erneute Verbindung erforderlich. Andernfalls versucht die Methode, den Pin erneut zu verbinden. Wenn die Methode das Format erfolgreich ändert, werden die neuen Segmentinformationen übermittelt. Diese Methode ruft die CDynamicOutputPin::ChangeMediaType-Methode auf, um die Formatänderung durchzuführen.

Sie müssen die CDynamicOutputPin::StartUsingOutputPin-Methode aufrufen, bevor Sie diese Methode aufrufen.

Anforderungen

Anforderung Wert
Header
Amfilter.h (include Streams.h)
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)

Siehe auch

CDynamicOutputPin-Klasse