Compartir a través de


Método IMFDeviceTransform::P rocessEvent (mftransform.h)

El método ProcessEvent envía un evento a un flujo de entrada en esta transformación de Media Foundation (MFT).

Sintaxis

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

Parámetros

[in] dwInputStreamID

Stream identificador. Para obtener la lista de identificadores de flujo, llame a IMFDeviceTransform::GetStreamIDs.

[in] pEvent

Puntero a la interfaz IMFMediaEvent de un objeto de evento.

Valor devuelto

El método devuelve un valor HRESULT. Entre los valores posibles se incluyen, entre otros, los valores especificados en la tabla siguiente.

Código devuelto Descripción
S_OK
El evento se procesó correctamente. El evento se propagará hacia abajo.
MF_E_INVALIDSTREAMNUMBER
Se pasó un identificador de secuencia no válido.
MF_S_TRANSFORM_DO_NO_PROPOGATE_EVENT
Indica que device MFT no quiere que el evento se propague aún más.
E_NOTIMPL
La función no está implementada.

Comentarios

Un MFT puede controlar el envío del evento de bajada o puede permitir que el DTM lo haga, como se indica en el valor devuelto:

  • E_NOTIMPL: El MFT omite todos los eventos y DTM debe enviar todos los eventos de bajada. Después de que la canalización reciba este valor devuelto
  • S_OK: El MFT ha examinado este evento, pero el DTM debe enviar el evento de bajada. Internamente, el MFT puede responder al evento de alguna manera, o bien puede omitir el evento.
  • MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT: DTM no debe propagar este evento de bajada. El MFT enviará el evento de bajada o, de lo contrario, el MFT consumirá el evento y no lo enviará de bajada. El MFT solo debe consumir el evento si el evento debe detenerse en este MFT y no viajar más abajo. Pero en la mayoría de los casos, el evento debe viajar de bajada.
Para enviar el evento de bajada, el MFT agrega el evento al objeto de colección proporcionado por el cliente en el miembro pEvents de la estructura MFT_OUTPUT_DATA_BUFFER , cuando el cliente llama a IMFTransform::P rocessOutput.

Los eventos se deben serializar con los ejemplos que vienen antes y después de ellos. Adjunte el evento al ejemplo de salida que sigue al evento. (La canalización procesará primero el evento y, a continuación, el ejemplo). Si un MFT retiene una o varias muestras entre llamadas a IMFTransform::P rocessInput y IMFTransform::P rocessOutput, el MFT debe controlar el envío de todos los eventos de bajada, ya que en esta situación, la canalización no puede correlacionar muestras de entrada con muestras de salida.

Si un MFT no mantiene muestras de retroceso y no necesita examinar ningún evento, puede devolver E_NOTIMPL.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10, versión 1703
Plataforma de destino Windows
Encabezado mftransform.h

Consulte también

IMFDeviceTransform