CBaseVideoRenderer 類別
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
基 CBaseVideoRenderer
類用於建置視訊轉譯器篩選。
受保護的資料成員 | Description |
---|---|
m_bDrawLateFrames | 表示沒有要卸載畫面的旗標。 僅偵錯。 這會終結同步處理。 |
m_bSupplierHandlingQuality | TRUE 表示正在處理品質控制訊息。 這可讓轉譯器知道要等到最晚才卸載框架本身,並在供應商卸載框架之後非常早地顯示下一個框架。 |
m_cFramesDrawn | 串流開始後已繪製的畫面總數。 |
m_cFramesDropped | 自串流啟動後,已在轉譯器中卸載的累計畫面格。 框架也可以卸載上游,而不需要轉譯器辨識它們。 |
m_idDecision | MSR_id ShouldDrawSampleNow的決策程式碼。 |
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 | True 等候時間的效能記錄識別碼。 |
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 |
Notify | 通知收件者要求品質變更。 |
SetSink | 設定將接收品質訊息的 IQualityControl 物件。 |