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 |
---|---|
|
Das Ereignis wurde erfolgreich verarbeitet. Das Ereignis wird nach unten weitergegeben. |
|
Eine ungültige Stream-ID wurde übergeben. |
|
Gibt an, dass das Ereignis vom Gerät MFT nicht weiter weitergegeben werden soll. |
|
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.
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 |