Bagikan melalui


Kelas CSource

[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.]

hierarki kelas csource

Kelas CSource adalah kelas dasar untuk menerapkan filter sumber. Filter yang berasal dari CSource berisi satu atau beberapa pin output yang berasal dari kelas CSourceStream . Setiap pin output membuat utas pekerja yang mendorong sampel media ke hilir.

Catatan

Kelas CSource dirancang untuk mendukung model pendorongan untuk aliran data. Kelas ini tidak disarankan untuk membuat filter pembaca file. Pembaca file harus mendukung model penarikan, melalui antarmuka IAsyncReader . Untuk informasi selengkapnya, lihat Aliran Data untuk Pengembang Filter.

Variabel Anggota yang Dilindungi Deskripsi
m_iPins Jumlah pin pada filter.
m_paStreams Array pin.
m_cStateLock Objek bagian penting yang melindungi status filter.
Metode Publik Deskripsi
CSource Metode konstruktor.
~CSource Metode destruktor.
GetPinCount Mengambil jumlah pin pada filter.
GetPin Mengambil pin.
pStateLock Mengambil penunjuk ke objek bagian penting filter.
AddPin Menambahkan pin output baru ke filter.
RemovePin Menghapus pin tertentu dari filter.
FindPinNumber Mengambil jumlah pin yang ditentukan pada filter.
Metode IBaseFilter Deskripsi
FindPin Mengambil pin dengan pengidentifikasi yang ditentukan.

Keterangan

Untuk menerapkan pin output, lakukan hal berikut:

Untuk mengimplementasikan filter, lakukan hal berikut:

  • Mendapatkan kelas dari CSource.
  • Di konstruktor, buat satu atau beberapa pin output yang berasal dari CSourceStream. Pin secara otomatis menambahkan diri mereka ke filter dalam metode konstruktor mereka, dan menghapus diri mereka sendiri dalam metode destruktor mereka.

Untuk menyinkronkan status filter di antara beberapa utas, panggil metode CSource::p StateLock . Metode ini mengembalikan penunjuk ke bagian kritis status filter. Gunakan kelas CAutoLock untuk menahan bagian penting. Dari pin, Anda dapat mengakses pStateLock dari variabel anggota CBasePin::m_pFilter pin, sebagai berikut:

CAutoLock lock(m_pFilter->pStateLock());

Persyaratan

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

Lihat juga

Menulis Filter Sumber