Freigeben über


AVStream-Uhren

AVStream-Filter unterstützen Uhren an Pins.

Um anzugeben, dass ein AVStream-Pin eine Uhr bereitstellt, setzen Sie KSPIN_FLAG_IMPLEMENT_CLOCK im Flags-Element des ersten KSPIN_DESCRIPTOR_EX im Mitglied PinDescriptors von KSFILTER_DESCRIPTOR fest.

Stellen Sie auch einen Zeiger auf eine KSCLOCK_DISPATCH-Struktur in KSPIN_DISPATCH bereit.

Verwenden Sie die auf der IKsReferenceClock-Schnittstelle definierten Methoden, 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 Zeitgeberwerte abzurufen, die im PresentationTime-Feld 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, stellen Sie sicher, dass Aufrufe von IKsReferenceClock-Methoden Aufrufe zur Verteilerroutine generieren, die in KSCLOCK_DISPATCH angegeben sind.

Der Filterdiagramm-Manager wählt eine Uhr aus, wenn ein Diagramm in den Pausenzustand wechselt. Jeder Filter, der eine Push-Quelle ist, z. B. ein Erfassungsfilter, wird als Taktanbieter bevorzugt.