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
S_OK
Die Methode wurde erfolgreich ausgeführt.
E_NOTIMPL
Nicht implementiert.
MF_E_INVALIDSTREAMNUMBER
Ungültige Streamnummer.
MF_E_TRANSFORM_TYPE_NOT_SET
Der Medientyp ist nicht für einen oder mehrere Streams festgelegt.
MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT
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.
Wenn der Client IMFTransform::P rocessOutput aufruft, fügt der MFT das -Ereignis zum nachgeschalteten Ereignis dem Auflistungsobjekt hinzu, das vom Client im pEvents-Member der MFT_OUTPUT_DATA_BUFFER-Struktur bereitgestellt wird.

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

Weitere Informationen

IMFTransform

Media Foundation-Transformationen