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 |
---|---|
|
메서드가 성공했습니다. |
|
구현되지 않았습니다. |
|
잘못된 스트림 번호입니다. |
|
미디어 유형이 하나 이상의 스트림에서 설정되지 않았습니다. |
|
파이프라인이 이벤트를 전파해서는 안 됩니다. |
설명
MFT는 이벤트 다운스트림 전송을 처리하거나 반환 값에 표시된 대로 파이프라인에서 이 작업을 수행하도록 할 수 있습니다.
- E_NOTIMPL: MFT는 모든 이벤트를 무시하고 파이프라인은 모든 이벤트를 다운스트림으로 보내야 합니다. 파이프라인이 이 반환 값을 받은 후 ProcessEvent 를 다시 호출하지 않을 수 있습니다.
- S_OK: MFT는 이 이벤트를 검사했지만 파이프라인은 이벤트를 다운스트림으로 보내야 합니다. 내부적으로 MFT는 어떤 식으로든 이벤트에 응답하거나 이벤트를 무시할 수 있습니다.
- MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT: 파이프라인이 이 이벤트를 다운스트림으로 전파해서는 안 됩니다. MFT는 이벤트를 다운스트림으로 보내거나 MFT가 이벤트를 사용하고 다운스트림으로 보내지 않습니다. MFT는 이벤트가 이 MFT에서 중지되고 더 이상 다운스트림으로 이동하지 않아야 하는 경우에만 이벤트를 사용해야 합니다. 그러나 대부분의 경우 이벤트는 다운스트림으로 이동해야 합니다.
이벤트는 그 전후에 제공되는 샘플로 직렬화되어야 합니다. 이벤트를 다음 출력 샘플에 연결합니다. 파이프라인은 먼저 이벤트를 처리한 다음 샘플을 처리합니다. MFT가 IMFTransform::P rocessInput 및 ProcessOutput 호출 간에 하나 이상의 샘플을 보유하는 경우 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 |