Condividi tramite


Metodo IMFTransform::P rocessEvent (mftransform.h)

Invia un evento a un flusso di input in questa trasformazione di Media Foundation (MFT).

Sintassi

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

Parametri

[in] dwInputStreamID

Identificatore del flusso di input. Per ottenere l'elenco degli identificatori di flusso, chiamare IMFTransform::GetStreamIDs.

[in] pEvent

Puntatore all'interfaccia IMFMediaEvent di un oggetto evento.

Valore restituito

Il metodo restituisce un valore HRESULT. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente.

Codice restituito Descrizione
S_OK
Il metodo è riuscito.
E_NOTIMPL
Non implementato.
MF_E_INVALIDSTREAMNUMBER
Numero di flusso non valido.
MF_E_TRANSFORM_TYPE_NOT_SET
Il tipo di supporto non è impostato su uno o più flussi.
MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT
La pipeline non deve propagare l'evento.

Commenti

Un MFT può gestire l'invio dell'evento downstream oppure può consentire alla pipeline di eseguire questa operazione, come indicato dal valore restituito:

  • E_NOTIMPL: MFT ignora tutti gli eventi e la pipeline deve inviare tutti gli eventi downstream. Dopo che la pipeline riceve questo valore restituito, potrebbe non chiamare di nuovo ProcessEvent .
  • S_OK: MFT ha esaminato questo evento, ma la pipeline deve inviare l'evento downstream. Internamente, il MFT potrebbe rispondere all'evento in qualche modo o potrebbe ignorare l'evento.
  • MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT: la pipeline non deve propagare questo evento downstream. MFT invierà l'evento downstream oppure MFT utilizzerà l'evento e non lo invierà a valle. MFT deve utilizzare l'evento solo se l'evento deve arrestarsi in questo MFT e non spostarsi più a valle. Ma nella maggior parte dei casi, l'evento deve viaggiare a valle.
Per inviare l'evento downstream, MFT aggiunge l'evento all'oggetto raccolta fornito dal client nel membro pEvents della struttura MFT_OUTPUT_DATA_BUFFER , quando il client chiama IMFTransform::P rocessOutput.

Gli eventi devono essere serializzati con gli esempi precedenti e successivi. Collegare l'evento all'esempio di output che segue l'evento . La pipeline elabora prima l'evento e quindi l'esempio. Se un MFT contiene uno o più campioni tra le chiamate a IMFTransform::P rocessInput e ProcessOutput, il MFT deve gestire l'invio di tutti gli eventi downstream, perché in questa situazione la pipeline non può correlare campioni di input con esempi di output.

Se un MFT non contiene campioni e non è necessario esaminare alcun evento, può restituire E_NOTIMPL.

Se MFT_UNIQUE_METHOD_NAMES viene definito prima di includere mftransform.h, questo metodo viene rinominato MFTProcessEvent. Vedere Creazione di oggetti DMO/MFT ibridi.

Requisiti

   
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione mftransform.h
Libreria Mfuuid.lib

Vedi anche

IMFTransform

Trasformazioni di Media Foundation