Partager via


Méthode IMFTransform::P rocessEvent (mftransform.h)

Envoie un événement à un flux d’entrée sur cette transformation Media Foundation (MFT).

Syntaxe

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

Paramètres

[in] dwInputStreamID

Identificateur de flux d’entrée. Pour obtenir la liste des identificateurs de flux, appelez IMFTransform::GetStreamIDs.

[in] pEvent

Pointeur vers l’interface IMFMediaEvent d’un objet d’événement.

Valeur retournée

Cette méthode retourne un code HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.

Code de retour Description
S_OK
S_OK
E_NOTIMPL
Non implémenté.
MF_E_INVALIDSTREAMNUMBER
Numéro de flux non valide.
MF_E_TRANSFORM_TYPE_NOT_SET
Le type de média n’est pas défini sur un ou plusieurs flux.
MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT
Le pipeline ne doit pas propager l’événement.

Notes

Un MFT peut gérer l’envoi de l’événement en aval, ou il peut laisser le pipeline effectuer cette opération, comme indiqué par la valeur de retour :

  • E_NOTIMPL : le MFT ignore tous les événements et le pipeline doit envoyer tous les événements en aval. Une fois que le pipeline a reçu cette valeur de retour, il peut ne plus appeler ProcessEvent .
  • S_OK : le MFT a examiné cet événement, mais le pipeline doit envoyer l’événement en aval. En interne, le MFT peut répondre à l’événement d’une manière ou d’une autre, ou il peut ignorer l’événement.
  • MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT : le pipeline ne doit pas propager cet événement en aval. Soit le MFT envoie l’événement en aval, soit le MFT consomme l’événement et ne l’envoie pas en aval. Le MFT ne doit consommer l’événement que si l’événement doit s’arrêter à cette MFT et ne pas se déplacer plus en aval. Mais dans la plupart des cas, l’événement doit se déplacer en aval.
Pour envoyer l’événement en aval, MFT ajoute l’événement à l’objet de collection fourni par le client dans le membre pEvents de la structure MFT_OUTPUT_DATA_BUFFER , lorsque le client appelle IMFTransform::P rocessOutput.

Les événements doivent être sérialisés avec les exemples qui viennent avant et après eux. Attachez l’événement à l’exemple de sortie qui suit l’événement. (Le pipeline traite d’abord l’événement, puis l’exemple.) Si un MFT conserve un ou plusieurs exemples entre les appels à IMFTransform::P rocessInput et ProcessOutput, le MFT doit gérer l’envoi de tous les événements en aval, car dans ce cas, le pipeline ne peut pas corréler les échantillons d’entrée avec les exemples de sortie.

Si un MFT ne retient pas d’exemples et n’a pas besoin d’examiner des événements, il peut retourner E_NOTIMPL.

Si MFT_UNIQUE_METHOD_NAMES est défini avant d’inclure mftransform.h, cette méthode est renommée MFTProcessEvent. Consultez Création d’objets DMO/MFT hybrides.

Spécifications

   
Client minimal pris en charge Windows Vista [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête mftransform.h
Bibliothèque Mfuuid.lib

Voir aussi

IMFTransform

Transformations de Media Foundation