다음을 통해 공유


CBaseVideoRenderer 클래스

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드가 DirectShow 대신 Media Foundation에서 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

cbasevideorenderer 클래스 계층 구조

CBaseVideoRenderer 기본 클래스는 비디오 렌더러 필터를 빌드하는 데 사용됩니다.

보호된 데이터 멤버 Description
m_bDrawLateFrames 프레임을 삭제하지 않을 것임을 알리는 플래그입니다. 디버그 전용입니다. 이렇게 하면 동기화가 삭제됩니다.
m_bSupplierHandlingQuality TRUE 는 품질 제어 메시지가 처리되고 있음을 나타냅니다. 이렇게 하면 렌더러는 가능한 한 늦게 프레임 자체를 삭제할 때까지 대기하고 공급자가 프레임을 삭제한 후 바로 다음 프레임을 표시할 수 있습니다.
m_cFramesDrawn 스트리밍이 시작된 이후 그려진 총 프레임 수입니다.
m_cFramesDropped 스트리밍이 시작된 이후 렌더러에서 삭제된 누적 프레임입니다. 렌더러가 인식하지 않고 업스트림 프레임을 삭제할 수도 있습니다.
m_idDecision ShouldDrawSampleNow의 의사 결정 코드에 대한 MSR_id.
m_idDuration 프레임 기간 동안 MSR_id.
m_idFrameAccuracy 프레임이 늦은 시간(밀리초)의 성능 로그 식별자입니다.
m_idFrameAvg 동기화 및 품질 제어에 사용되는 평균 프레임 시간에 대한 성능 로그 식별자입니다.
m_idQualityRate 요청된 품질 속도에 대한 MSR_id.
m_idQualityTime 요청된 품질 시간에 대한 MSR_id.
m_idRenderAvg 기록된 평균 렌더러 시간의 성능 로그 식별자입니다.
m_idSchLateTime MSR_id 프레임이 예약되었을 때의 지연 시간입니다.
m_idSendQuality 알림 타이밍 지정을 위한 MSR_id(사용되지 않음)
m_idTimeStamp 프레임 타임스탬프를 MSR_id.
m_idWait 기록된 대기 시간(사용되지 않음)에 대한 성능 로그 식별자입니다.
m_idWaitReal 실제 대기 시간에 대한 성능 로그 식별자입니다.
m_iSumFrameTime 프레임 간 시간의 합계; 속성 페이지에 필요합니다.
m_iSumSqAcc 속성 페이지에 필요한 정확도의 제곱(밀리초)의 합계입니다.
m_iSumSqFrameTime 프레임 간 시간의 제곱 합계; 속성 페이지에 필요합니다.
m_iTotAcc 속성 페이지에 필요한 정확도(밀리초)의 합계입니다.
m_nNormal 예약된 시간에 그린 연속 프레임 수입니다. 음수는 렌더러가 프레임을 삭제했음을 나타냅니다.
m_trDuration 마지막 프레임의 기간(시작 시간과 종료 시간 간의 차이).
m_trEarliness 프레임이 방금 삭제되었을 때 프레임을 재생할 수 있는 초기 방법입니다.
m_trFrame 프레임 간에 가장 최근에 기록된 시간입니다. 통계 측정에 사용됩니다.
m_trFrameAvg 평균 프레임 간 시간(참조 시간 단위)입니다.
m_trLastDraw 이전 프레임의 시간입니다. 프레임 간 시간 참조에 사용됩니다.
m_trLate 현재 프레임이 늦은 시간입니다. 통계 측정에 사용됩니다.
m_trRenderAvg 프레임이 비트 블록 전송을 수행하는 데 걸리는 시간입니다.
m_trRenderLast 마지막 프레임 비트 블록 전송에 대한 시간입니다.
m_trRenderStart 비트 블록 전송이 시작된 시간입니다. m_trRenderLast 가져오는 데 사용됩니다.
m_trThrottle 각 프레임을 렌더링한 후 삽입할 기간입니다. 일반적으로 오디오 품질이 향상되고 이를 허용하려면 비디오 성능을 줄여야 하는 경우에 사용됩니다.
m_trWaitAvg 참조 시간 단위의 평균 대기 시간입니다.
m_tStreamingStart 속성 페이지 통계에 사용됩니다. 현재 스트리밍이 아닌 경우 현재 스트리밍 프로세스 또는 이전 스트리밍 프로세스의 시작 시간을 나타냅니다.
멤버 함수 Description
CBaseVideoRenderer CBaseVideoRenderer 개체를 생성합니다.
GetStdDev 프레임별 통계에 대해 각 프레임의 기한과 실제로 렌더링되는 시점 사이의 표준 편차를 밀리초 단위로 예측합니다.
PreparePerformanceData 현재 프레임의 m_trLatem_trFrame 값을 설정합니다.
ThrottleWait 각 프레임 뒤에 대기 기간을 삽입합니다.
재정의 가능한 멤버 함수 Description
JoinFilterGraph 필터 그래프에서 필터가 제거되면 EC_WINDOW_DESTROYED 이벤트를 보냅니다.
OnDirectRender 동기화 및 품질 제어를 제어하는 타이밍 정보를 수집합니다.
OnRenderEnd 품질 관리 및 동기화에 대한 정보를 기록합니다.
OnRenderStart 품질 관리 및 동기화에 대한 정보를 기록합니다.
OnStartStreaming 스트리밍을 제어하는 모든 시간을 다시 설정합니다.
OnStopStreaming 속성 페이지 보고서의 시간을 수정하기 위해 스트리밍이 끝날 때 호출됩니다.
OnWaitEnd 대기 시간이 끝날 때 호출됩니다. 성능 로깅만 해당합니다.
OnWaitStart 업데이트 시간은 대기하고 기다리지 않는 데 소요되었습니다. 성능 로깅만 해당합니다.
RecordFrameLateness 렌더링이 발생한 시간을 기록하고 속성 페이지에 대한 통계를 수집합니다.
ResetStreamingTimes 스트리밍을 제어하는 모든 시간을 다시 설정합니다.
ScheduleSample 시계와 함께 조언 링크를 설정합니다.
SendQuality 품질에 대해 공급업체가 수행해야 하는 작업을 나타내는 품질 메시지를 보냅니다.
ShouldDrawSampleNow 시계와 타이머 조언 링크를 설정하지 않고 기한이 지나면 비디오를 그려야 하는지 여부를 결정합니다.
IQualProp 메서드 Description
get_Avg FrameRate 100초당 프레임에서 스트리밍이 시작된 이후의 평균 프레임 속도를 검색합니다.
get_AvgSyncOffset 각 프레임의 기한과 실제로 렌더링된 시점 사이의 평균 시간(밀리초)을 검색합니다. 이는 스트리밍이 시작된 이후의 모든 프레임에 적용됩니다.
get_DevSyncOffset 각 프레임의 기한과 스트리밍이 시작된 이후 모든 프레임에 대해 실제로 렌더링된 시간 사이의 표준 편차를 밀리초 단위로 검색합니다.
get_FramesDrawn 스트리밍이 시작된 이후 그려진 프레임 수를 검색합니다.
get_FramesDroppedInRenderer 렌더러가 삭제한 프레임 수를 검색합니다. 프레임은 업스트림 삭제할 수도 있습니다.
get_Jitter 각 프레임과 다음 프레임 사이의 표준 편차를 밀리초 단위로 검색합니다. 이는 스트리밍이 시작된 이후의 모든 프레임에 적용됩니다.
IQualityControl 메서드 Description
알림 수신자에게 품질 변경이 요청됨을 알 수 있습니다.
SetSink 품질 메시지를 받을 IQualityControl 개체를 설정합니다.