IMFDeviceTransform::P rocessEvent 메서드(mftransform.h)

ProcessEvent 메서드는 이 MFT(Media Foundation 변환)의 입력 스트림에 이벤트를 보냅니다.

구문

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

매개 변수

[in] dwInputStreamID

Stream 식별자입니다. 스트림 식별자 목록을 얻으려면 IMFDeviceTransform::GetStreamIDs를 호출합니다.

[in] pEvent

이벤트 개체의 IMFMediaEvent 인터페이스에 대한 포인터입니다.

반환 값

이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 제공된 값이 포함되지만 제한되지는 않습니다.

반환 코드 Description
S_OK
이벤트가 성공적으로 처리되었습니다. 이벤트는 스트림 아래로 전파됩니다.
MF_E_INVALIDSTREAMNUMBER
잘못된 스트림 ID가 전달되었습니다.
MF_S_TRANSFORM_DO_NO_PROPOGATE_EVENT
디바이스 MFT가 이벤트를 더 이상 전파하지 않도록 합니다.
E_NOTIMPL
함수가 구현되지 않았습니다.

설명

MFT는 이벤트 다운스트림 전송을 처리하거나 반환 값에 표시된 대로 DTM이 이 작업을 수행하도록 할 수 있습니다.

  • E_notimpl: MFT는 모든 이벤트를 무시하고 DTM은 모든 이벤트를 다운스트림으로 보내야 합니다. 파이프라인이 이 반환 값을 받은 후
  • S_ok: MFT는 이 이벤트를 검사했지만 DTM은 이벤트를 다운스트림으로 보내야 합니다. 내부적으로 MFT는 어떤 식으로든 이벤트에 응답하거나 이벤트를 무시할 수 있습니다.
  • MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT: DTM은 이 이벤트를 다운스트림으로 전파해서는 안 됩니다. MFT는 이벤트를 다운스트림으로 보내거나 MFT가 이벤트를 사용하고 다운스트림으로 보내지 않습니다. MFT는 이벤트가 이 MFT에서 중지되고 더 이상 다운스트림으로 이동하지 않아야 하는 경우에만 이벤트를 사용해야 합니다. 그러나 대부분의 경우 이벤트는 다운스트림으로 이동해야 합니다.
이벤트를 다운스트림으로 보내기 위해 MFT는 클라이언트가 IMFTransform::P rocessOutput을 호출할 때 MFT_OUTPUT_DATA_BUFFER 구조체의 pEvents 멤버에서 클라이언트가 제공하는 컬렉션 개체에 이벤트를 추가합니다.

이벤트는 그 전후에 제공되는 샘플로 직렬화되어야 합니다. 이벤트를 다음 출력 샘플에 연결합니다. 파이프라인은 먼저 이벤트를 처리한 다음 샘플을 처리합니다. MFT가 IMFTransform::P rocessInputIMFTransform::P rocessOutput 호출 간에 하나 이상의 샘플을 보유하는 경우 MFT는 모든 이벤트 다운스트림 전송을 처리해야 합니다. 이 경우 파이프라인은 입력 샘플과 출력 샘플의 상관 관계를 지정할 수 없기 때문입니다.

MFT가 샘플을 보류하지 않고 이벤트를 검사할 필요가 없는 경우 E_NOTIMPL 반환할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10, 버전 1703
대상 플랫폼 Windows
헤더 mftransform.h

추가 정보

IMFDeviceTransform