Condividi tramite


Metodo IMFDeviceTransform::P rocessEvent (mftransform.h)

Il metodo ProcessEvent 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

Stream identificatore. Per ottenere l'elenco degli identificatori di flusso, chiamare FMDeviceTransform::GetStreamIDs.

[in] pEvent

Puntatore all'interfaccia IMFMediaEvent di un oggetto evento.

Valore restituito

Il metodo restituisce un HRESULT. I valori possibili includono ma non solo i valori specificati nella tabella seguente.

Codice restituito Descrizione
S_OK
Evento elaborato correttamente. L'evento verrà propagato in basso.
MF_E_INVALIDSTREAMNUMBER
È stato passato un ID di flusso non valido.
MF_S_TRANSFORM_DO_NO_PROPOGATE_EVENT
Indica che il dispositivo MFT non vuole che l'evento venga propagato ulteriormente.
E_NOTIMPL
La funzione non viene implementata.

Commenti

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

  • E_NOTIMPL: MFT ignora tutti gli eventi e il DTM deve inviare tutti gli eventi downstream. Dopo che la pipeline riceve questo valore restituito
  • S_OK: MFT ha esaminato questo evento, ma il DTM deve inviare l'evento downstream. Internamente, il MFT potrebbe rispondere all'evento in qualche modo oppure ignorare l'evento.
  • MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT: Il DTM non deve propagare questo evento downstream. MFT invierà l'evento downstream oppure il MFT utilizzerà l'evento e non lo invierà a valle. MFT deve utilizzare l'evento solo se l'evento deve arrestarsi a questo MFT e non spostarsi più a valle. Ma nella maggior parte dei casi, l'evento dovrebbe viaggiare verso il basso.
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 FMTransform::P rocessOutput.

Gli eventi devono essere serializzati con gli esempi che vengono prima e dopo. 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ù esempi tra chiamate a FMTransform::P rocessInput e FMTransform::P rocessOutput, il MFT deve gestire l'invio di tutti gli eventi downstream, perché in questa situazione la pipeline non può correlare esempi di input con campioni di output.

Se un MFT non mantiene gli esempi e non deve esaminare alcun evento, può restituire E_NOTIMPL.

Requisiti

Requisito Valore
Client minimo supportato Windows 10 versione 1703
Piattaforma di destinazione Windows
Intestazione mftransform.h

Vedi anche

FMDeviceTransform