Kelas CBaseReferenceClock
[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Tangkapan Audio/Video di Media Foundation. Fitur-fitur tersebut telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer, IMFMediaEngine dan Audio/Video Capture di Media Foundation alih-alih DirectShow, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]
Kelas CBaseReferenceClock
mengimplementasikan jam referensi.
Variabel Anggota yang Dilindungi | Deskripsi |
---|---|
m_pSchedule | Objek CAMSchedule yang menangani tugas penjadwalan untuk jam. |
Metode yang Dilindungi | Deskripsi |
~CBaseReferenceClock | Metode destruktor. |
Metode Publik | Deskripsi |
CBaseReferenceClock | Metode konstruktor. |
GetPrivateTime | Mengambil real time dari jam. |
SetTimeDelta | Menyesuaikan waktu jam internal. |
GetSchedule | Mengambil penunjuk ke objek penjadwalan jam. |
TriggerThread | Membangunkan utas pekerja yang menangani penjadwalan. |
Metode IReferenceClock | Deskripsi |
GetTime | Mengambil waktu referensi saat ini. |
AdviseTime | Membuat permintaan saran satu bidikan. |
AdvisePeriodic | Membuat permintaan saran berkala. |
Tidak diawasi | Menghapus permintaan saran yang tertunda. |
Metode IReferenceClockTimerControl | Deskripsi |
GetDefaultTimerResolution | Mengembalikan resolusi timer jam referensi saat ini. |
SetDefaultTimerResolution | Mengatur resolusi timer jam referensi. |
Fungsi Pembantu | Deskripsi |
ConvertToMilliseconds | Mengonversi waktu referensi menjadi milidetik. |
Keterangan
Kelas ini mengimplementasikan jam referensi yang mendukung antarmuka IReferenceClock dan IReferenceClockTimerControl . Jika filter dapat menyediakan jam referensi untuk grafik filter misalnya, dengan mengakses perangkat keras, filter dapat menggunakan kelas ini untuk mengimplementasikan jam.
Objek CBaseReferenceClock
mempertahankan dua nilai waktu yang berbeda:
- Secara internal, metode CBaseReferenceClock::GetPrivateTime mengembalikan waktu aktual yang disimpan oleh jam.
- Secara eksternal, metode CBaseReferenceClock::GetTime mengembalikan waktu referensi untuk grafik filter.
Hal ini berlaku untuk jam internal untuk berjalan mundur selama periode singkat. Misalnya, jika jam melayang ke depan, filter dapat menyesuaikannya mundur. (Lihat CBaseReferenceClock::SetTimeDelta.) Metode GetTime menggunakan nilai waktu yang dilaporkan oleh GetPrivateTime. Namun, waktu referensi meningkat secara monoton; dengan kata lain, itu tidak pernah berjalan mundur. Oleh karena itu, jika jam internal berjalan mundur, GetTime terus melaporkan waktu lama sampai jam internal mengejar ketinggalan.
Misalnya, dua metode mungkin mengembalikan urutan berikut:
GetPrivateTime: 105, 106, 103, 104, 105, 106, 107, 108
GetTime: 105, 106, 106, 106, 106, 106, 107, 108
Pada jam ketiga, jam internal melompat mundur ke 103. Metode GetTime terus melaporkan 106 hingga jam internal mengejar ketinggalan.
Secara default, GetPrivateTime mengembalikan waktu sistem, melalui panggilan ke fungsi timeGetTime . Filter yang menyediakan jam referensi dari perangkat eksternal dapat melakukan salah satu hal berikut ini:
- Ambil alih GetPrivateTime untuk mengembalikan waktu dari perangkat.
- Pantau perbedaan antara waktu perangkat dan waktu sistem, dan panggil SetTimeDelta untuk melakukan koreksi.
Kelas ini menggunakan objek CAMSchedule untuk menangani penjadwalan permintaan saran. Untuk detailnya, lihat dokumentasi untuk kelas CAMSchedule .
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|
Pustaka |
|