Freigeben über


IMFDeviceTransform::P rocessEvent-Methode (mftransform.h)

Die ProcessEvent-Methode sendet ein Ereignis an einen Eingabedatenstrom in dieser Media Foundation-Transformation (MFT).

Syntax

HRESULT ProcessEvent(
  [in] DWORD         dwInputStreamID,
  [in] IMFMediaEvent *pEvent
);

Parameter

[in] dwInputStreamID

Stream Bezeichner. Rufen Sie zum Abrufen der Liste der Streambezeichner IMFDeviceTransform::GetStreamIDs auf.

[in] pEvent

Zeiger auf die IMFMediaEvent-Schnittstelle eines Ereignisobjekts.

Rückgabewert

Die Methode gibt ein HRESULT zurück. Mögliche Werte sind unter anderem Werte, die in der folgenden Tabelle angegeben sind.

Rückgabecode BESCHREIBUNG
S_OK
Das Ereignis wurde erfolgreich verarbeitet. Das Ereignis wird nach unten weitergegeben.
MF_E_INVALIDSTREAMNUMBER
Eine ungültige Stream-ID wurde übergeben.
MF_S_TRANSFORM_DO_NO_PROPOGATE_EVENT
Gibt an, dass das Ereignis vom Gerät MFT nicht weiter weitergegeben werden soll.
E_NOTIMPL
Die Funktion ist nicht implementiert.

Hinweise

Ein MFT kann das Senden des Ereignisses nachgeschaltet verarbeiten, oder er kann dies dem DTM erlauben, wie durch den Rückgabewert angegeben:

  • E_NOTIMPL: Der MFT ignoriert alle Ereignisse, und die DTM sollte alle Ereignisse nach unten senden. Nachdem die Pipeline diesen Rückgabewert empfangen hat
  • S_OK: Das MFT hat dieses Ereignis untersucht, aber die DTM sollte das Ereignis nachgeschaltet senden. Intern kann der MFT auf das Ereignis in irgendeiner Weise reagieren oder das Ereignis ignorieren.
  • MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT: Das DTM sollte dieses Ereignis nicht nach unten weitergeben. Entweder sendet das MFT das Ereignis nach unten, oder das MFT nutzt das Ereignis und sendet es nicht nach unten. Das MFT sollte das Ereignis nur nutzen, wenn das Ereignis bei diesem MFT beendet wird und nicht weiter nach unten verschoben wird. In den meisten Fällen sollte das Ereignis jedoch flussabwärts verschoben werden.
Um das Ereignis nachgelagert zu senden, fügt MFT das Ereignis dem Auflistungsobjekt hinzu, das vom Client im pEvents-Member der MFT_OUTPUT_DATA_BUFFER-Struktur bereitgestellt wird, wenn der Client IMFTransform::P rocessOutput aufruft.

Ereignisse müssen mit den Beispielen serialisiert werden, die vor und nach ihnen vorliegen. Fügen Sie das Ereignis an das Ausgabebeispiel an, das auf das Ereignis folgt. (Die Pipeline verarbeitet zuerst das Ereignis und dann das Beispiel.) Wenn ein MFT ein oder mehrere Beispiele zwischen Aufrufen von IMFTransform::P rocessInput und IMFTransform::P rocessOutput zurückhält, sollte die MFT das Senden aller Ereignisse nacheinander verarbeiten, da die Pipeline in diesem Fall eingabebeispiele nicht mit Ausgabebeispielen korrelieren kann.

Wenn ein MFT keine Beispiele zurückhält und keine Ereignisse untersuchen muss, kann er E_NOTIMPL zurückgeben.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 10, Version 1703
Zielplattform Windows
Kopfzeile mftransform.h

Weitere Informationen

IMFDeviceTransform