IMFMediaSink::SetPresentationClock 메서드(mfidl.h)
미디어 싱크에서 프레젠테이션 시계를 설정합니다.
구문
HRESULT SetPresentationClock(
[in] IMFPresentationClock *pPresentationClock
);
매개 변수
[in] pPresentationClock
프레젠테이션 클록의 IMFPresentationClock 인터페이스 또는 NULL에 대한 포인터입니다. 값이 NULL이면 미디어 싱크가 이전에 설정된 프레젠테이션 시계(있는 경우)의 수신 대기를 중지합니다.
반환 값
이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.
반환 코드 | 설명 |
---|---|
|
메서드가 성공했습니다. |
|
프레젠테이션 시계에 시간 원본이 없습니다. 프레젠테이션 시계에서 SetTimeSource 를 호출합니다. |
|
미디어 싱크의 Shutdown 메서드가 호출되었습니다. |
설명
스트리밍하는 동안 미디어 싱크는 프레젠테이션 시계와 속도를 일치시키려고 시도합니다. 이상적으로 미디어 싱크는 프레젠테이션 시계에 따라 올바른 시간에 샘플을 제공하며 뒤처지지 않습니다. 속도 없는 미디어 싱크는 가능한 한 빨리 샘플을 사용하고 시계를 무시하므로 이 규칙의 예외입니다. 싱크가 속도 없는 경우 IMFMediaSink::GetCharacteristics 메서드는 MEDIASINK_RATELESS 플래그를 반환합니다.
프레젠테이션 시계에는 시간 원본이 있어야 합니다. 이 메서드를 호출하기 전에 프레젠테이션 시계에서 IMFPresentationClock::SetTimeSource 를 호출하여 프레젠테이션 시간 원본을 설정합니다. 일부 미디어 싱크는 시간 원본을 제공합니다. 따라서 미디어 싱크는 자체 프레젠테이션 시계의 시간 원본일 수 있습니다. 그러나 어떤 개체가 시간 원본을 제공하는지에 관계없이 미디어 싱크는 pPresentationClock에 지정된 클록과 속도를 일치시키려고 시도해야 합니다. 미디어 싱크가 외부 시간 원본과 속도를 일치시킬 수 없는 경우 미디어 싱크의 IMFMediaSink::GetCharacteristics 메서드는 MEDIASINK_CANNOT_MATCH_CLOCK 플래그를 검색합니다. 이 경우 SetPresentationClock 은 여전히 성공하지만 결과는 최적이 아닙니다. 싱크는 프레젠테이션 시계와 속도를 일치시킬 만큼 신속하게 샘플을 렌더링하지 못할 수 있습니다.
pPresentationClock이 NULL이 아닌 경우 프레젠테이션 클록에서 IMFPresentationClock::AddClockStateSink를 호출하여 미디어 싱크가 클록 상태 알림을 등록해야 합니다. 새 프레젠테이션 클록을 사용하여 메서드를 다시 호출하거나 pPresentationClock 이 NULL인 경우 미디어 싱크는 IMFPresentationClock::RemoveClockStateSink 를 호출하여 이전 클록에서 자체 등록을 취소해야 합니다.
모든 미디어 싱크는 이 메서드를 지원해야 합니다.
요구 사항
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | mfidl.h |
라이브러리 | Mfuuid.lib |