Kelas CPullPin

cpullpin class hierarchy

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 Flow Data di Filter Graph 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:

  1. Dapatkan kelas pembantu dari CPullPin, dan dapatkan kelas pin input dari CBasePin. Nyatakan instans CPullPin objek sebagai variabel anggota kelas pin.
  2. Ambil alih metode CBasePin::CheckConnect untuk memanggil CPullPin::Koneksi. Metode ini meminta pin lain untuk IAsyncReader.
  3. Ambil alih metode CBasePin::BreakConnect untuk memanggil CPullPin::D isconnect.
  4. 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.
  5. Ambil alih metode CBasePin::Inactive untuk memanggil CPullPin::Inactive. Metode ini mematikan utas pekerja.
  6. Terapkan metode CPullPin::Receive virtual murni untuk memproses sampel masuk dan mengirimkannya ke hilir.
  7. Untuk mengatur posisi berhenti dan mulai, atau untuk mencari aliran, panggil metode CPullPin::Seek . Metode ini menjeda utas pekerja dan menghapus grafik filter.
  8. Terapkan metode CPullPin virtual murni::EndOfStream, CPullPin::BeginFlush, dan CPullPin::EndFlush , seperti yang dijelaskan dalam keterangan untuk metode tersebut.
  9. 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.
Sambungkan 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.
Mencari 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.
Terima Dipanggil ketika objek menerima sampel media dari pin output.

Persyaratan

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