Método IMFTransform::P rocessEvent (mftransform.h)
Envia um evento para um fluxo de entrada nesta transformação do Media Foundation (MFT).
Sintaxe
HRESULT ProcessEvent(
[in] DWORD dwInputStreamID,
[in] IMFMediaEvent *pEvent
);
Parâmetros
[in] dwInputStreamID
Identificador de fluxo de entrada. Para obter a lista de identificadores de fluxo, chame IMFTransform::GetStreamIDs.
[in] pEvent
Ponteiro para a interface IMFMediaEvent de um objeto de evento.
Valor retornado
O método retorna um HRESULT. Os possíveis valores incluem, mas sem limitação, aqueles na tabela a seguir.
Código de retorno | Descrição |
---|---|
|
O método foi bem-sucedido. |
|
Não implementado. |
|
Número de fluxo inválido. |
|
O tipo de mídia não está definido em um ou mais fluxos. |
|
O pipeline não deve propagar o evento. |
Comentários
Um MFT pode lidar com o envio do evento downstream ou pode permitir que o pipeline faça isso, conforme indicado pelo valor retornado:
- E_NOTIMPL: o MFT ignora todos os eventos e o pipeline deve enviar todos os eventos downstream. Depois que o pipeline recebe esse valor retornado, ele pode não chamar ProcessEvent novamente.
- S_OK: o MFT examinou esse evento, mas o pipeline 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 pipeline 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 uma ou mais amostras entre chamadas para IMFTransform::P rocessInput e ProcessOutput, 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.
Se MFT_UNIQUE_METHOD_NAMES for definido antes de incluir mftransform.h, esse método será renomeado como MFTProcessEvent. Consulte Criando objetos DMO/MFT híbridos.
Requisitos
Cliente mínimo com suporte | Windows Vista [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | mftransform.h |
Biblioteca | Mfuuid.lib |