IMFTransform::P rocessEvent-Methode (mftransform.h)
Sendet ein Ereignis an einen Eingabestream für diese Media Foundation-Transformation (MFT).
Syntax
HRESULT ProcessEvent(
[in] DWORD dwInputStreamID,
[in] IMFMediaEvent *pEvent
);
Parameter
[in] dwInputStreamID
Eingabedatenstrombezeichner. Um die Liste der Streambezeichner abzurufen, rufen Sie IMFTransform::GetStreamIDs auf.
[in] pEvent
Zeiger auf die IMFMediaEvent-Schnittstelle eines Ereignisobjekts.
Rückgabewert
Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Die Methode wurde erfolgreich ausgeführt. |
|
Nicht implementiert. |
|
Ungültige Streamnummer. |
|
Der Medientyp ist nicht für einen oder mehrere Streams festgelegt. |
|
Die Pipeline sollte das Ereignis nicht weitergeben. |
Hinweise
Ein MFT kann das Senden des Ereignisses nachgelagert verarbeiten, oder die Pipeline kann dies tun, wie im Rückgabewert angegeben:
- E_NOTIMPL: Der MFT ignoriert alle Ereignisse, und die Pipeline sollte alle Ereignisse nachgeschaltet senden. Nachdem die Pipeline diesen Rückgabewert empfangen hat, wird ProcessEvent möglicherweise nicht erneut aufgerufen.
- S_OK: Das MFT hat dieses Ereignis untersucht, aber die Pipeline sollte das Ereignis nachgelagert senden. Intern kann der MFT auf das Ereignis in irgendeiner Weise reagieren oder das Ereignis ignorieren.
- MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT: Die Pipeline sollte dieses Ereignis nicht nachgelagert weitergeben. Entweder sendet der MFT das Ereignis nachgeschaltet, oder der MFT nutzt das Ereignis und sendet es nicht nachgeschaltet. Das MFT sollte das Ereignis nur nutzen, wenn das Ereignis an diesem MFT angehalten und nicht weiter nachgeschaltet werden soll. In den meisten Fällen sollte das Ereignis jedoch nachgeschaltet werden.
Ereignisse müssen mit den Beispielen serialisiert werden, die vor und nach ihnen kommen. 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 ProcessOutput zurückhält, sollte der MFT das Senden aller nachgeschalteten Ereignisse verarbeiten, da die Pipeline in dieser Situation 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.
Wenn MFT_UNIQUE_METHOD_NAMES vor dem Einschließen von mftransform.h definiert ist, wird diese Methode in MFTProcessEvent umbenannt. Weitere Informationen finden Sie unter Erstellen von DMO/MFT-Hybridobjekten.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | mftransform.h |
Bibliothek | Mfuuid.lib |