Udostępnij przez


Zegary AVStream

Filtry AVStream obsługują zegary na pinach.

Aby wskazać, że pin AVStream udostępnia zegar, ustaw KSPIN_FLAG_IMPLEMENT_CLOCK w elemencie Flags pierwszego KSPIN_DESCRIPTOR_EX w elemencie PinDescriptorsKSFILTER_DESCRIPTOR.

Ponadto podaj wskaźnik do struktury KSCLOCK_DISPATCH w KSPIN_DISPATCH.

Aby wysyłać żądania zegara, użyj metod zdefiniowanych w interfejsie IKsReferenceClock . Interfejs IKsReferenceClock można uzyskać, wywołując interfejs KsPinGetReferenceClockInterface. Minidriver AVStream jest odpowiedzialny za zwolnienie interfejsu po zakończeniu.

Aby uzyskać wartości czasomierza do umieszczenia w polu PresentationTimeKSSTREAM_HEADER, wywołaj metodę IKsReferenceClock::GetCorrelatedTime.

Należy pamiętać, że zegar nigdy nie jest wyświetlany w grafedycie, nawet jeśli zegar został wybrany.

Aby sprawdzić, czy zegar został wybrany, sprawdź, czy wywołania metod IKsReferenceClock generują wywołania wysyłania procedur określonych w KSCLOCK_DISPATCH.

Menedżer wykresu filtru wybiera zegar, gdy wykres przechodzi do stanu wstrzymania. Każdy filtr, który jest źródłem wypychania, na przykład filtr przechwytujący, jest preferowany jako dostawca zegara.