DirectShow DirectShow 레퍼런스 DirectShow base class base class 레퍼런스 CBaseVideoRenderer   [목차열람] [주소복사] [슬롯비우기]
CBaseVideoRenderer 클래스
 
Microsoft DirectX 9.0

CBaseVideoRenderer 클래스

CBaseVideoRenderer 의 접속 처리

CBaseVideoRenderer base class는, 비디오 렌더러 필터를 구축하기 위해서 사용된다.

프로텍트 데이터 멤버

m_bDrawLateFrames 프레임이 드롭 되지 않는 것을 통지하는 플래그. 디버그 전용. 이것은 동기를 파기한다.
m_bSupplierHandlingQuality TRUE 는 품질 컨트롤 메시지가 처리되는 것을 나타낸다. 이것에 의해, 렌더러는 프레임 자체가 드롭 할 때까지 대기해, 사프라이야가 프레임을 드롭 한 직후에 다음의 프레임을 표시할 수가 있다.
m_cFramesDrawn 스트리밍이 시작 된 후에 드로잉(Drawing) 된 프레임의 합계수.
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 프로퍼티 페이지로 필요한 정밀도 (밀리 세컨드 단위)의 2 승의 합계.
m_iSumSqFrameTime 프레임간의 시간의 2 승의 합계. 프로퍼티 페이지로 필요하게 된다.
m_iTotAcc 프로퍼티 페이지로 필요한 정밀도 (밀리 세컨드 단위)의 합계.
m_nNormal 스케줄 된 시간에 드로잉(Drawing) 되는 연속하는 프레임의 수. 부의 수는, 프레임이 렌더러에 의해 드롭 된 것을 나타낸다.
m_trDuration 마지막 프레임의 시간폭 (시작 타임과 종료 타임의 차이).
m_trEarliness 프레임이 드롭 되었을 경우에, 어느 정도 빨리 프레임을 재생할 수 있을까.
m_trFrame 마지막에 기록된 프레임간의 시간. 통계적 측정으로 사용된다.
m_trFrameAvg 의 단위에서의 프레임간의 평균 시간.
m_trLastDraw 전의 프레임의 시간. 프레임간의 시간의 참조로 사용된다.
m_trLate 현재의 프레임이 지연 할 시간. 통계적 측정으로 사용된다.
m_trRenderAvg 프레임이 비트 블록 전송을 실행하기 위해서 걸리는 시간.
m_trRenderLast 마지막 프레임의 비트 블록 전송의 시간.
m_trRenderLast 비트 블록 전송을 시작 할 시간. m_trRenderLast 를 얻어오기 위해 사용된다.
m_trThrottle 각 프레임을 렌더링 한 후에 삽입하는 시간. 보통, 오디오의 품질을 향상시켰을 때에 사용되어 이것을 실시하기 위해서(때문에) 비디오의 퍼포먼스를 저하시킬 필요가 있다.
m_trWaitAvg 기준 타임의 단위에서의 평균 대기 시간.
m_tStreamingStart 프로퍼티 페이지의 통계로 사용된다. 현재의 스트리밍 처리의 시작 타임, 또는 현재 스트리밍을 하지 않은 경우는 전의 스트리밍 처리의 시작 타임을 나타낸다.

멤버 함수

CBaseVideoRenderer CBaseVideoRenderer 개체를 생성 한다.
GetStdDev 프레임마다 통계로서 각 프레임의 예정 시간과 실제로 렌더링 된 시간과의 표준 편차를 예측한다.
PreparePerformanceData 현재의 프레임의 m_trLatem_trFrame 의 값을 설정한다.
ThrottleWait 각 프레임의 뒤에 대기 시간을 삽입한다.

오버라이드(override) 가능한 멤버 함수

JoinFilterGraph 필터가 필터 그래프로부터 삭제되었을 때에,EC_WINDOW_DESTROYED 이벤트 통지를 송신한다.
OnDirectRender 동기 및 품질 컨트롤을 제어하는 타이밍 정보를 수집한다.
OnRenderEnd 품질 컨트롤 및 동기의 정보를 기록한다.
OnRenderStart 품질 컨트롤 및 동기의 정보를 기록한다.
OnStartStreaming 스트리밍을 제어하는 모든 시간을 리셋 한다.
OnStopStreaming 프로퍼티 페이지의 리포트용으로 시간을 수정하기 위해서, 스트리밍의 마지막에 호출된다.
OnWaitEnd 대기 시간의 종료시에 호출된다. 퍼포먼스 로그 전용.
OnWaitStart 대기하고 있던 시간으로 대기하고 있지 않았던 시간을 갱신한다. 퍼포먼스 로그 전용.
RecordFrameLateness 렌더링이 어느 정도 늦지 않고에 행해졌는지를 기록해, 프로퍼티 페이지의 통계 정보를 수집한다.
ResetStreamingTimes 스트리밍을 제어하는 모든 시간을 리셋 한다.
ScheduleSample 클럭을 사용해 아드바이즈린크를 설정한다.
SendQuality 사프라이야가 품질에 관해서 실행하는 처리를 나타내는 품질 메시지를 송신한다.
ShouldDrawSampleNow 클럭을 사용해 타이머의 아드바이즈린크를 설정하지 않고 , 비디오를 예정대로에 드로잉(Drawing) 할지 어떨지를 판단한다.

처리 되는 IQualProp 메서드

get_AvgFrameRate 스트리밍이 시작 된 후의 평균 frame rate를, 100 초 쯤의 프레임수단위로 얻어온다.
get_AvgSyncOffset 각 프레임의 예정 시간과 실제로 렌더링 된 시간의 사이의 평균 시간을 밀리 세컨드 단위로 얻어온다. 이것은, 스트리밍이 시작 된 후, 모든 프레임에 적용된다.
get_DevSyncOffset 스트리밍이 시작 된 후의 모든 프레임에 대해, 각 프레임의 예정 시간과 실제로 렌더링 된 시간의 사이의 밀리 세컨드 단위의 시간의 표준 편차를 얻어온다.
get_FramesDrawn 스트리밍의 시작 후에 드로잉(Drawing) 된 프레임수를 얻어온다.
get_FramesDroppedInRenderer 렌더러에 의해 드롭 된 프레임수를 얻어온다. 프레임은 업 스트림에서도 드롭 할 수 있다.
get_Jitter 각 프레임과 다음의 프레임의 사이의 밀리 세컨드 단위의 시간에 대해 표준 편차를 얻어온다. 이것은, 스트리밍이 시작 된 후, 모든 프레임에 적용된다.

처리 되는 IQualityControl 메서드

Notify 품질의 변경이 요구된 것을 수신자에게 통지한다.
SetSink 품질 메시지를 받아들이는 IQualityControl 개체를 설정한다.

↑TOP