Bagikan melalui


Kelas CAMSchedule

[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 CAMSchedule mengimplementasikan penjadwal untuk jam referensi.

Metode Publik Deskripsi
CAMSchedule Metode konstruktor.
~CAMSchedule Metode destruktor. Virtual.
GetAdviseCount Mengambil jumlah permintaan saran yang tertunda.
GetNextAdviseTime Mengambil waktu permintaan saran berikutnya.
TambahkanAdvisePacket Menambahkan permintaan saran ke daftar permintaan yang tertunda.
Tidak diawasi Menghapus permintaan saran.
Menyarankan Mengirimkan semua permintaan yang dijadwalkan untuk waktu yang ditentukan atau yang lebih lama.
GetEvent Mengambil handel peristiwa, yang digunakan untuk memberi sinyal perubahan pada waktu saran berikutnya.

Keterangan

Objek pembantu ini mempertahankan daftar permintaan saran untuk jam referensi. Kelas CBaseReferenceClock menggunakannya untuk membantu menjadwalkan permintaan saran. Jam menggunakan objek ini dengan cara berikut:

  1. Jam membuat utas pekerja untuk menangani penjadwalan.
  2. Utas pekerja memanggil metode CAMSchedule::GetEvent untuk mengambil handel peristiwa dari penjadwal. Ini menunggu pada peristiwa ini, awalnya dengan waktu habis yang tak terbatas.
  3. Untuk menjadwalkan permintaan saran baru, jam memanggil metode CAMSchedule::AddAdvisePacket . Permintaan saran dapat berupa satu bidikan atau berkala. Penjadwal menyimpan daftar permintaan dalam urutan waktu.
  4. Jika permintaan ditambahkan ke bagian depan daftar, penjadwal memberi sinyal peristiwa. (Daftar kosong pada awalnya, sehingga permintaan pertama dijamin untuk memberi sinyal peristiwa.)
  5. Ketika peristiwa disinyalkan, utas pekerja memanggil metode CAMSchedule::Advise , yang menentukan waktu referensi saat ini. Jika ada permintaan yang tertunda kedaluwarsa, penjadwal akan mengirimkannya.
  6. Metode Saran mengembalikan waktu permintaan berikutnya. Utas pekerja menggunakan nilai ini untuk menghitung nilai batas waktu baru.
  7. Langkah 2 6 berulang tanpa batas waktu.
  8. Untuk mengakhiri utas pekerja, jam mengatur bendera internal dan memberi sinyal peristiwa.

Di langkah 2, baik peristiwa disinyalkan, atau waktu tunggu habis. Jika peristiwa disinyalkan, itu berarti bahwa permintaan baru ditambahkan ke bagian depan daftar. Utas pekerja harus menghitung nilai batas waktu baru. Di sisi lain, jika waktu tunggu habis, itu berarti bahwa permintaan saran telah jatuh tempo dan harus dikirim. Panggilan ke Advise di langkah 5 menangani kedua kasus.

Persyaratan

Persyaratan Nilai
Header
Dsschedule.h (termasuk Streams.h)
Pustaka
Strmbase.lib (build ritel);
Strmbasd.lib (build debug)