AVStream のクロック

AVStream フィルターは、ピンのクロックをサポートします。

AVStream ピンがクロックを公開していることを示すには、KSFILTER_DESCRIPTORPinDescriptors メンバーの最初の KSPIN_DESCRIPTOR_EXFlags メンバーに KSPIN_FLAG_IMPLEMENT_CLOCK を設定します。

また、KSPIN_DISPATCHKSCLOCK_DISPATCH 構造体へのポインターも指定します。

クロック要求を行うには、IKsReferenceClock インターフェイスで定義されているメソッドを使用します。 KsPinGetReferenceClockInterface を呼び出すことで、IKsReferenceClock インターフェイスを取得できます。 AVStream ミニドライバーは、完了時にインターフェイスを解放する役割を担います。

KSSTREAM_HEADERPresentationTime フィールドに配置するタイマー値を取得するには、IKsReferenceClock::GetCorrelatedTime を呼び出します。

クロックが選択されている場合でも、クロックは GraphEdit に表示されないことに注意してください。

クロックが選択されていることを確認するには、IKsReferenceClock メソッドの呼び出しによって、KSCLOCK_DISPATCH で指定されたディスパッチ ルーチンの呼び出しが生成されることを確認します。

フィルター グラフ マネージャーは、グラフが一時停止状態に遷移したときにクロックを選択します。 プッシュ ソースであるフィルター (キャプチャ フィルターなど) は、クロック プロバイダーとして優先されます。