Bagikan melalui


Kelas CBaseStreamControl

[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Pengambilan 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 Pengambilan Audio/Video 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.]

Hierarki kelas cbasestreamcontrol

Kelas ini mengimplementasikan antarmuka IAMStreamControl untuk pin input dan output. Ini memberikan kontrol atas memulai dan menghentikan pin individu pada filter. Pin yang mendukung IAMStreamControl harus mewarisi dari kelas dasar ini. Berikut ini adalah deklarasi umum untuk pin input:

class CMyInputPin : public CBaseInputPin, public CBaseStreamControl

Pastikan untuk mengganti NonDelegatingQueryInteface untuk mengekspos IAMStreamControl. Untuk informasi selengkapnya, lihat Cara Menerapkan IUnknown.

Metode Publik Deskripsi
CBaseStreamControl Metode konstruktor.
~CBaseStreamControl Metode destruktor.
CheckStreamState Menentukan apakah sampel media harus dikirimkan atau dibuang.
Pembilasan Memberi tahu kelas dasar bahwa pin telah dimulai atau berhenti dibersihkan.
NotifyFilterState Memberi tahu pin saat status filter berubah.
SetFilterGraph Menentukan sink peristiwa untuk peristiwa kontrol aliran.
SetSyncSource Memberi tahu kelas dasar jam referensi saat ini.
Metode IAMStreamControl Deskripsi
GetInfo Mengambil informasi tentang pengaturan kontrol aliran saat ini, termasuk waktu mulai dan berhenti.
StartAt Menginformasikan pin kapan harus mulai mengirimkan data.
StopAt Menginformasikan pin kapan harus berhenti mengirimkan data.

Keterangan

Kelas ini memerlukan pin dan filter pemilik untuk memberi tahu kelas ketika berbagai peristiwa terjadi, seperti filter yang bergabung dengan grafik atau menerima jam referensi baru. Anda harus memanggil metode kelas berikut:

Kelas CBaseStreamControl menggunakan jam referensi grafik filter untuk menentukan sampel mana yang harus dikirimkan filter, dan mana yang harus dibuang. Dalam metode IMemInputPin::Receive pin Anda, panggil metode CBaseStreamControl::CheckStreamState dengan pointer ke sampel media masuk. Jika metode mengembalikan nilai STREAM_FLOWING, kirim sampel ke hilir. Jika tidak, buang saja.

Persyaratan

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