다음을 통해 공유


IMFMediaSink::SetPresentationClock 메서드(mfidl.h)

미디어 싱크에서 프레젠테이션 시계를 설정합니다.

구문

HRESULT SetPresentationClock(
  [in] IMFPresentationClock *pPresentationClock
);

매개 변수

[in] pPresentationClock

프레젠테이션 클록의 IMFPresentationClock 인터페이스 또는 NULL에 대한 포인터입니다. 값이 NULL이면 미디어 싱크가 이전에 설정된 프레젠테이션 시계(있는 경우)의 수신 대기를 중지합니다.

반환 값

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

반환 코드 설명
S_OK
메서드가 성공했습니다.
MF_E_CLOCK_NO_TIME_SOURCE
프레젠테이션 시계에 시간 원본이 없습니다. 프레젠테이션 시계에서 SetTimeSource 를 호출합니다.
MF_E_SHUTDOWN
미디어 싱크의 Shutdown 메서드가 호출되었습니다.

설명

스트리밍하는 동안 미디어 싱크는 프레젠테이션 시계와 속도를 일치시키려고 시도합니다. 이상적으로 미디어 싱크는 프레젠테이션 시계에 따라 올바른 시간에 샘플을 제공하며 뒤처지지 않습니다. 속도 없는 미디어 싱크는 가능한 한 빨리 샘플을 사용하고 시계를 무시하므로 이 규칙의 예외입니다. 싱크가 속도 없는 경우 IMFMediaSink::GetCharacteristics 메서드는 MEDIASINK_RATELESS 플래그를 반환합니다.

프레젠테이션 시계에는 시간 원본이 있어야 합니다. 이 메서드를 호출하기 전에 프레젠테이션 시계에서 IMFPresentationClock::SetTimeSource 를 호출하여 프레젠테이션 시간 원본을 설정합니다. 일부 미디어 싱크는 시간 원본을 제공합니다. 따라서 미디어 싱크는 자체 프레젠테이션 시계의 시간 원본일 수 있습니다. 그러나 어떤 개체가 시간 원본을 제공하는지에 관계없이 미디어 싱크는 pPresentationClock에 지정된 클록과 속도를 일치시키려고 시도해야 합니다. 미디어 싱크가 외부 시간 원본과 속도를 일치시킬 수 없는 경우 미디어 싱크의 IMFMediaSink::GetCharacteristics 메서드는 MEDIASINK_CANNOT_MATCH_CLOCK 플래그를 검색합니다. 이 경우 SetPresentationClock 은 여전히 성공하지만 결과는 최적이 아닙니다. 싱크는 프레젠테이션 시계와 속도를 일치시킬 만큼 신속하게 샘플을 렌더링하지 못할 수 있습니다.

pPresentationClockNULL이 아닌 경우 프레젠테이션 클록에서 IMFPresentationClock::AddClockStateSink를 호출하여 미디어 싱크가 클록 상태 알림을 등록해야 합니다. 새 프레젠테이션 클록을 사용하여 메서드를 다시 호출하거나 pPresentationClockNULL인 경우 미디어 싱크는 IMFPresentationClock::RemoveClockStateSink 를 호출하여 이전 클록에서 자체 등록을 취소해야 합니다.

모든 미디어 싱크는 이 메서드를 지원해야 합니다.

요구 사항

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

참고 항목

IMFMediaSink

미디어 싱크

프레젠테이션 시계