Método IMFDeviceTransform::P rocessEvent (mftransform.h)
O método ProcessEvent envia um evento para um fluxo de entrada nesta MFT (transformação do Media Foundation).
Sintaxe
HRESULT ProcessEvent(
[in] DWORD dwInputStreamID,
[in] IMFMediaEvent *pEvent
);
Parâmetros
[in] dwInputStreamID
Stream identificador. Para obter a lista de identificadores de fluxo, chame IMFDeviceTransform::GetStreamIDs.
[in] pEvent
Ponteiro para a interface IMFMediaEvent de um objeto de evento.
Retornar valor
O método retorna um HRESULT. Os valores possíveis incluem, mas não se limitam aos valores fornecidos na tabela a seguir.
Código de retorno | Descrição |
---|---|
|
O evento foi processado com êxito. O evento será propagado para baixo. |
|
Uma ID de fluxo inválida foi passada. |
|
Indica que o MFT do dispositivo não deseja que o evento seja propagado ainda mais. |
|
A função não é implementada. |
Comentários
Um MFT pode lidar com o envio do evento downstream ou pode permitir que o DTM faça isso, conforme indicado pelo valor retornado:
- E_NOTIMPL: O MFT ignora todos os eventos e o DTM deve enviar todos os eventos downstream. Depois que o pipeline receber esse valor retornado
- S_OK: O MFT examinou esse evento, mas o DTM deve enviar o evento downstream. Internamente, o MFT pode responder ao evento de alguma forma ou pode ignorar o evento.
- MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT: O DTM não deve propagar esse evento downstream. O MFT enviará o evento downstream ou o MFT consumirá o evento e não o enviará downstream. O MFT só deve consumir o evento se o evento deve parar neste MFT e não viajar mais downstream. Mas, na maioria dos casos, o evento deve viajar downstream.
Os eventos devem ser serializados com os exemplos que vêm antes e depois deles. Anexe o evento ao exemplo de saída que segue o evento. (O pipeline processará o evento primeiro e, em seguida, o exemplo.) Se um MFT retém um ou mais exemplos entre chamadas para IMFTransform::P rocessInput e IMFTransform::P rocessOutput, o MFT deve lidar com o envio de todos os eventos downstream, pois, nessa situação, o pipeline não pode correlacionar amostras de entrada com amostras de saída.
Se um MFT não reter amostras e não precisar examinar nenhum evento, ele poderá retornar E_NOTIMPL.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 10, versão 1703 |
Plataforma de Destino | Windows |
Cabeçalho | mftransform.h |