Bagikan melalui


Kelas CBaseFilter

[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 cbasefilter

Kelas CBaseFilter adalah kelas abstrak untuk menerapkan filter. Untuk menerapkan filter menggunakan kelas ini, Anda harus melakukan setidaknya langkah-langkah berikut:

  • Dapatkan kelas baru dari CBaseFilter.
  • Sertakan variabel anggota yang menentukan pin pada filter. Pin harus diwarisi dari kelas CBasePin .
  • Ambil alih metode virtual murni CBaseFilter::GetPin, yang mengambil pin pada filter.
  • Ambil alih metode virtual murni CBaseFilter::GetPinCount, yang mengambil jumlah pin.
  • Menyediakan metode untuk menghasilkan, memproses, atau merender sampel media.

Beberapa kelas dasar berasal dari CBaseFilter, termasuk CSource, CBaseRenderer, dan CTransformFilter. Biasanya lebih mudah untuk menerapkan filter dengan salah satu kelas khusus ini, daripada menggunakan CBaseFilter secara langsung.

Variabel Anggota yang Dilindungi Deskripsi
m_State Status filter saat ini.
m_pClock Arahkan ke jam referensi filter.
m_tStart Waktu referensi yang sesuai dengan waktu streaming 0.
m_clsid Pengidentifikasi kelas (CLSID) filter.
m_pLock Penunjuk ke bagian penting yang digunakan untuk menserialisasikan perubahan status.
m_pName Nama filter.
m_pGraph Arahkan ke manajer grafik filter.
m_pSink Arahkan ke antarmuka IMediaEventSink pada manajer grafik filter.
m_PinVersion Versi saat ini dari set pin pada filter ini.
Metode Publik Deskripsi
CBaseFilter Metode konstruktor.
~ CBaseFilter Metode destruktor.
StreamTime Mengambil waktu streaming saat ini. Virtual.
IsActive Menentukan apakah filter saat ini aktif (berjalan atau dijeda).
Dihentikan Menentukan apakah filter saat ini dihentikan.
NotifyEvent Mengirim pemberitahuan peristiwa ke manajer grafik filter.
GetFilterGraph Mengambil penunjuk ke manajer grafik filter.
Sambungkan UlangPin Memutuskan koneksi pin yang ada dan menyambungkannya kembali ke pin yang sama, menggunakan jenis media tertentu.
GetPinVersion Mengambil nomor versi untuk kumpulan pin pada filter ini. Virtual.
IncrementPinVersion Menaikkan nomor versi pada kumpulan pin.
GetSetupData Mengambil data pendaftaran untuk filter. Virtual.
Metode Virtual Murni Deskripsi
GetPinCount Mengambil jumlah pin.
GetPin Mengambil pin.
Metode IPersist Deskripsi
GetClassID Mengambil pengidentifikasi kelas.
Metode IMediaFilter Deskripsi
GetState Mengambil status filter (berjalan, dihentikan, atau dijeda).
SetSyncSource Mengatur jam referensi untuk filter.
GetSyncSource Mengambil jam referensi yang digunakan filter.
Hentikan Menghentikan filter.
Pause Menjeda filter.
jalankan Menjalankan filter.
Metode IBaseFilter Deskripsi
EnumPins Menghitung pin pada filter ini.
FindPin Mengambil pin dengan pengidentifikasi yang ditentukan.
QueryFilterInfo Mengambil informasi tentang filter.
JoinFilterGraph Memberi tahu filter bahwa filter telah bergabung atau meninggalkan grafik filter.
QueryVendorInfo Mengambil string yang berisi informasi vendor.
Metode IAMovieSetup Deskripsi
Daftar Menambahkan filter ke registri.
Membatalkan Pendaftaran Menghapus filter dari registri.

Persyaratan

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