AVStream-Uhren
AVStream-Filter unterstützen Uhren an Pins.
Um anzugeben, dass ein AVStream-Pin eine Uhr verfügbar macht, legen Sie KSPIN_FLAG_IMPLEMENT_CLOCK im Flags-Element des ersten KSPIN_DESCRIPTOR_EX im PinDescriptors-Element von KSFILTER_DESCRIPTOR fest.
Stellen Sie außerdem einen Zeiger auf eine KSCLOCK_DISPATCH-Struktur in KSPIN_DISPATCH bereit.
Verwenden Sie die Methoden, die auf der IKsReferenceClock-Schnittstelle definiert sind, um Uhrenanforderungen zu stellen. Sie können eine IKsReferenceClock-Schnittstelle abrufen, indem Sie KsPinGetReferenceClockInterface aufrufen. Der AVStream-Minidriver ist dafür verantwortlich, die Schnittstelle nach Abschluss freizugeben.
Um Timerwerte abzurufen, die im Feld PresentationTime von KSSTREAM_HEADER platziert werden sollen, rufen Sie IKsReferenceClock::GetCorrelatedTime auf.
Beachten Sie, dass die Uhr nie in GraphEdit angezeigt wird, auch wenn die Uhr ausgewählt wurde.
Um zu überprüfen, ob die Uhr ausgewählt wurde, überprüfen Sie, ob Aufrufe von IKsReferenceClock-Methoden Aufrufe von In KSCLOCK_DISPATCH angegebenen Dispatchroutinen generieren.
Der Filterdiagramm-Manager wählt eine Uhr aus, wenn ein Graph in den Pausenzustand wechselt. Jeder Filter, der eine Pushquelle für instance einen Erfassungsfilter darstellt, wird als Uhrenanbieter bevorzugt.