CBaseVideoRenderer クラス
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
CBaseVideoRenderer
基本クラスは、ビデオ レンダラー フィルターを構築するために使用されます。
プロテクト データ メンバー | 説明 |
---|---|
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 | フレーム間時間の 2 乗の合計。プロパティ ページに必要です。 |
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 | プロパティ ページの統計情報に使用されます。 現在ストリーミングしていない場合は、現在のストリーミング プロセスまたは前のストリーミング プロセスの開始時刻を表します。 |
メンバー関数 | 説明 |
CBaseVideoRenderer | CBaseVideoRenderer オブジェクトを構築します。 |
GetStdDev | フレームごとの統計情報について、各フレームの期限と実際にレンダリングされる時間の間の標準偏差をミリ秒単位で推定します。 |
PreparePerformanceData | 現在のフレームの m_trLate と m_trFrame 値を設定します。 |
ThrottleWait | 各フレームの後に待機期間を挿入します。 |
オーバーライド可能なメンバー関数 | 説明 |
JoinFilterGraph | フィルター グラフからフィルターが削除されたときに、 EC_WINDOW_DESTROYED イベントを送信します。 |
OnDirectRender | 同期と品質管理を制御するタイミング情報を収集します。 |
OnRenderEnd | 品質管理と同期に関する情報を記録します。 |
OnRenderStart | 品質管理と同期に関する情報を記録します。 |
OnStartStreaming | ストリーミングを制御するすべての時間をリセットします。 |
OnStopStreaming | ストリーミングの最後に呼び出され、プロパティ ページ レポートの時刻を修正します。 |
OnWaitEnd | 待機時間が終了したときに呼び出されます。 パフォーマンス ログのみ。 |
OnWaitStart | 更新時間は待機に費やされ、待機していません。 パフォーマンス ログのみ。 |
RecordFrameLateness | レンダリングが発生したタイミングを記録し、プロパティ ページの統計情報を収集します。 |
ResetStreamingTimes | ストリーミングを制御するすべての時間をリセットします。 |
ScheduleSample | クロックを含むアドバイズ リンクを設定します。 |
SendQuality | 品質に関してサプライヤーが何をすべきかを示す品質メッセージを送信します。 |
ShouldDrawSampleNow | クロックにタイマー アドバイス リンクを設定せずに、ビデオが期限切れになったときにビデオを描画する必要があるかどうかを決定します。 |
IQualProp メソッド | 説明 |
get_Avg FrameRate | ストリーミングが 100 秒あたりのフレーム単位で開始されてからの平均フレーム レートを取得します。 |
get_AvgSyncOffset | 各フレームの期限から実際にレンダリングされるまでの時間の平均 (ミリ秒単位) を取得します。 これは、ストリーミング開始以降のすべてのフレームに適用されます。 |
get_DevSyncOffset | 各フレームの期限から、ストリーミング開始後にすべてのフレームに対して実際にレンダリングされるまでの時間の標準偏差をミリ秒単位で取得します。 |
get_FramesDrawn | ストリーミング開始後に描画されたフレーム数を取得します。 |
get_FramesDroppedInRenderer | レンダラーによって削除されたフレームの数を取得します。 フレームはアップストリームにドロップすることもできます。 |
get_Jitter | 各フレームから次のフレームまでの時間の標準偏差をミリ秒単位で取得します。 これは、ストリーミング開始以降のすべてのフレームに適用されます。 |
IQualityControl メソッド | 説明 |
通知 | 品質の変更が要求されたことを受信者に通知します。 |
SetSink | 品質メッセージを受信する IQualityControl オブジェクトを設定します。 |