次の方法で共有


CBaseVideoRenderer クラス

CBaseVideoRenderer の接続処理

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 プロパティ ページで必要な精度 (ミリ秒単位) の 2 乗の合計。
m_iSumSqFrameTime フレーム間の時間の 2 乗の合計。プロパティ ページで必要になる。
m_iTotAcc プロパティ ページで必要な精度 (ミリ秒単位) の合計。
m_nNormal スケジュールされた時間に描画される連続するフレームの数。負の数は、フレームがレンダラによってドロップされたことを示す。
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_trLate および m_trFrame の値を設定する。
ThrottleWait 各フレームの後に待機時間を挿入する。

オーバーライド可能なメンバ関数

JoinFilterGraph フィルタがフィルタ グラフから削除されたときに、EC_WINDOW_DESTROYED イベント通知を送信する。
OnDirectRender 同期および品質コントロールを制御するタイミング情報を収集する。
OnRenderEnd 品質コントロールおよび同期の情報を記録する。
OnRenderStart 品質コントロールおよび同期の情報を記録する。
OnStartStreaming ストリーミングを制御するすべての時間をリセットする。
OnStopStreaming プロパティ ページのレポート用に時間を修正するために、ストリーミングの最後に呼び出される。
OnWaitEnd 待機時間の終了時に呼び出される。パフォーマンス ログ専用。
OnWaitStart 待機していた時間と待機していなかった時間を更新する。パフォーマンス ログ専用。
RecordFrameLateness レンダリングがどの程度遅れずに行われたかを記録し、プロパティ ページの統計情報を収集する。
ResetStreamingTimes ストリーミングを制御するすべての時間をリセットする。
ScheduleSample クロックを使ってアドバイズ リンクを設定する。
SendQuality サプライヤが品質に関して実行する処理を示す品質メッセージを送信する。
ShouldDrawSampleNow クロックを使ってタイマのアドバイズ リンクを設定せずに、ビデオを予定どおりに描画するかどうかを判断する。

実装される IQualProp メソッド

get_AvgFrameRate ストリーミングが開始された後の平均フレーム レートを、100 秒あたりのフレーム数単位で取得する。
get_AvgSyncOffset 各フレームの予定時間と実際にレンダリングされた時間の間の平均時間をミリ秒単位で取得する。これは、ストリーミングが開始された後、すべてのフレームに適用される。
get_DevSyncOffset ストリーミングが開始された後のすべてのフレームについて、各フレームの予定時間と実際にレンダリングされた時間の間のミリ秒単位の時間の標準偏差を取得する。
get_FramesDrawn ストリーミングの開始後に描画されたフレーム数を取得する。
get_FramesDroppedInRenderer レンダラによってドロップされたフレーム数を取得する。フレームはアップストリームでもドロップできる。
get_Jitter 各フレームと次のフレームの間のミリ秒単位の時間について標準偏差を取得する。これは、ストリーミングが開始された後、すべてのフレームに適用される。

実装される IQualityControl メソッド

Notify 品質の変更が要求されたことを受信者に通知する。
SetSink 品質メッセージを受け取る IQualityControl オブジェクトを設定する。