다음을 통해 공유


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

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

구문

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

매개 변수

[in] dwInputStreamID

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

[in] pEvent

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

반환 값

이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.

반환 코드 Description
S_OK
메서드가 성공했습니다.
E_NOTIMPL
구현되지 않았습니다.
MF_E_INVALIDSTREAMNUMBER
잘못된 스트림 번호입니다.
MF_E_TRANSFORM_TYPE_NOT_SET
미디어 유형이 하나 이상의 스트림에서 설정되지 않았습니다.
MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT
파이프라인이 이벤트를 전파해서는 안 됩니다.

설명

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

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

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

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

mftransform.h를 포함하기 전에 MFT_UNIQUE_METHOD_NAMES 정의된 경우 이 메서드의 이름이 MFTProcessEvent로 바뀝니다. 하이브리드 DMO/MFT 개체 만들기를 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 mftransform.h
라이브러리 Mfuuid.lib

참고 항목

IMFTransform

Media Foundation 변환