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