IReferenceClockTimerControl インターフェイス (strmif.h)
[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、および Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayer、IMFMediaEngine、Audio/Video Capture を使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
インターフェイスは IReferenceClockTimerControl
、参照クロックで使用されるタイマー期間を変更します。 このインターフェイスは、DirectShow システム参照クロックによって公開されます。
継承
IReferenceClockTimerControl インターフェイスは、IUnknown インターフェイスから継承します。 IReferenceClockTimerControl には、次の種類のメンバーもあります。
メソッド
IReferenceClockTimerControl インターフェイスには、これらのメソッドがあります。
IReferenceClockTimerControl::GetDefaultTimerResolution GetDefaultTimerResolution メソッドは、参照クロックによって要求されたタイマー解像度を返します。 |
IReferenceClockTimerControl::SetDefaultTimerResolution SetDefaultTimerResolution メソッドは、タイマーの最小解像度を設定します。 |
注釈
既定では、DirectShow のシステム参照クロックはタイマー期間をタイマーで許容される最小値に設定します。 通常、この値は 1 ミリ秒です。
タイマー期間は、Windows のグローバル設定です。 解像度を高くすると、待機関数のタイムアウト間隔の精度が向上します。 ただし、スレッド スケジューラはタスクをより頻繁に切り替えるので、システムの全体的なパフォーマンスを低下させることもできます。 高解像度では、CPU 電源管理システムが省電力モードに入らないようにすることもできます。 解像度を高く設定しても、高解像度パフォーマンス カウンターの精度は向上しません。
このインターフェイスのメイン目的は、参照クロックの既定のタイマー設定をオーバーライドすることです。 これを行うには、値 0 を指定して SetDefaultTimerResolution を呼び出します。 これにより、タイマーの解像度が低下し、ユーザーのコンピューターが省電力モードに入る可能性があります。 (実際の動作は、他のプロセスが実行されているなど、他の多くの要因によって異なります)。 DVD ナビゲーター フィルターでは、こちらの説明に従ってこのインターフェイスが使用されます。
DirectShow フィルターに高いタイマー解像度が必要な場合は、 timeBeginPeriod を呼び出す必要があります。 通常、この要件はレンダラー フィルターにのみ適用されます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | strmif.h (Dshow.h を含む) |