Kelas CPullPin
[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 ini CPullPin
menyediakan dukungan untuk pin input yang menarik data melalui antarmuka IAsyncReader . Gunakan kelas ini jika Anda menerapkan filter yang menggunakan model penarikan untuk meminta data dari filter upstream. Untuk informasi selengkapnya, lihat Aliran Data di Grafik Filter dan Model Penarikan.
Kelas ini tidak berasal dari CBasePin atau mengimplementasikan antarmuka IPin , dan beberapa nama metode berbenturan dengan IPin, sehingga paling baik digunakan sebagai objek pembantu di dalam pin Anda. Untuk menggunakan kelas ini, lakukan hal berikut:
- Dapatkan kelas pembantu dari
CPullPin
, dan dapatkan kelas pin input dari CBasePin. Nyatakan instansCPullPin
objek sebagai variabel anggota kelas pin. - Ambil alih metode CBasePin::CheckConnect untuk memanggil CPullPin::Connect. Metode ini meminta pin lain untuk IAsyncReader.
- Ambil alih metode CBasePin::BreakConnect untuk memanggil CPullPin::D isconnect.
- Ambil alih metode CBasePin::Active untuk memanggil CPullPin::Active. Metode ini memulai utas pekerja yang menarik sampel dari filter upstram. Saat pin tersambung, Anda dapat menentukan apakah Anda ingin utas pekerja membuat permintaan baca asinkron atau sinkron.
- Ambil alih metode CBasePin::Inactive untuk memanggil CPullPin::Inactive. Metode ini mematikan utas pekerja.
- Terapkan metode CPullPin::Receive virtual murni untuk memproses sampel masuk dan mengirimkannya ke hilir.
- Untuk mengatur posisi berhenti dan mulai, atau untuk mencari aliran, panggil metode CPullPin::Seek . Metode ini menjeda utas pekerja dan menghapus grafik filter.
- Terapkan metode CPullPin virtual murni::EndOfStream, CPullPin::BeginFlush, dan CPullPin::EndFlush , seperti yang dijelaskan dalam keterangan untuk metode tersebut.
- Terapkan metode CPullPin::OnError virtual murni untuk menangani kesalahan streaming.
Variabel Anggota Publik | Deskripsi |
---|---|
m_pAlloc | Arahkan ke antarmuka IMemAllocator dari alokator memori. |
Metode Publik | Deskripsi |
Aktif | Membuat utas pekerja yang menarik data dari pin output. |
Rata Bawah | Memotong nilai ke batas perataan yang ditentukan. |
AlignUp | Membulatkan nilai hingga batas perataan tertentu. |
Menghubungkan | Menyelesaikan koneksi ke pin output. |
CPullPin | Metode konstruktor. |
~CPullPin | Metode destruktor. Virtual. |
DecideAllocator | Menegosiasikan alokator dengan pin output. Virtual. |
Putuskan sambungan | Paruh koneksi dengan pin output. |
Durasi | Mengambil durasi aliran. |
GetReader | Mengembalikan penunjuk ke antarmuka IAsyncReader pin output. |
Tidak aktif | Mematikan utas pekerja yang menarik data dari pin output. |
Seek | Mengatur posisi mulai dan berhenti aliran. |
Metode Virtual Murni | Deskripsi |
BeginFlush | Menginformasikan filter pemilik untuk membersihkan filter hilir. |
EndFlush | Menginformasikan filter pemilik untuk mengakhiri operasi flush. |
EndOfStream | Dipanggil setelah objek mengirimkan sampel terakhir. |
OnError | Dipanggil jika terjadi kesalahan selama streaming. |
Receive | Dipanggil ketika objek menerima sampel media dari pin output. |
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|
Pustaka |
|