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 |
|
Non implémenté. |
|
Numéro de flux non valide. |
|
Le type de média n’est pas défini sur un ou plusieurs flux. |
|
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.
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 |