Kelas CBaseOutputPin
[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.]
Kelas CBaseOutputPin
adalah kelas dasar abstrak yang mengimplementasikan pin output.
Kelas ini berasal dari CBasePin. Ini berbeda dari CBasePin dalam hal-hal berikut:
- Ini hanya terhubung ke pin input yang mendukung antarmuka IMemInputPin .
- Ini mendukung transportasi memori lokal melalui antarmuka IMemAllocator .
- Ini menolak pemberitahuan end-of-stream, flush, dan segmen baru. (Ini tidak boleh dikirim ke pin output.)
- Ini menyediakan metode untuk mengirimkan sampel di hilir.
Saat pin tersambung, pin meminta alokator memori dari pin input. Gagal itu, itu membuat objek alokator baru. Pin output bertanggung jawab untuk mengatur properti alokator. Ini dilakukan melalui metode virtual murni CBaseOutputPin::D ecideBufferSize. Ambil alih metode ini di kelas turunan Anda. Jika pin input memiliki persyaratan buffer, pin tersebut diteruskan ke metode DecideBufferSize .
Panggil metode CBaseOutputPin::GetDeliveryBuffer untuk mendapatkan sampel media kosong. Panggil metode CBaseOutputPin::D eliver untuk mengirimkan sampel di hilir.
Kelas turunan Anda harus mengganti metode CBasePin virtual murni::CheckMediaType untuk memvalidasi jenis media selama koneksi pin.
Variabel Anggota yang Dilindungi | Deskripsi |
---|---|
m_pAllocator | Arahkan ke alokator memori. |
m_pInputPin | Arahkan ke pin input yang tersambung ke pin ini. |
Metode Publik | Deskripsi |
CBaseOutputPin | Metode konstruktor. |
CompleteConnect | Menyelesaikan koneksi ke pin input. Virtual. |
DecideAllocator | Memilih alokator memori. Virtual. |
GetDeliveryBuffer | Mengambil sampel media yang berisi buffer kosong. Virtual. |
Mengirim | Memberikan sampel media ke pin input yang terhubung. Virtual. |
InitAllocator | Membuat alokator memori. Virtual. |
CheckConnect | Menentukan apakah koneksi pin cocok. |
Putuskan Sambungan | Melepaskan pin dari koneksi. |
Aktif | Memberi tahu pin bahwa filter sekarang aktif. |
Tidak aktif | Memberi tahu pin bahwa filter tidak lagi aktif. |
DeliverEndOfStream | Memberikan pemberitahuan end-of-stream ke pin input yang terhubung. Virtual. |
DeliverBeginFlush | Meminta pin input yang terhubung untuk memulai operasi flush. Virtual. |
DeliverEndFlush | Meminta pin input yang terhubung untuk mengakhiri operasi flush. Virtual. |
DeliverNewSegment | Memberikan pemberitahuan segmen baru ke pin input yang terhubung. Virtual. |
Metode Virtual Murni | Deskripsi |
DecideBufferSize | Mengatur persyaratan buffer. |
Metode IPin | Deskripsi |
BeginFlush | Memulai operasi flush. |
EndFlush | Mengakhiri operasi flush. |
EndOfStream | Memberi tahu pin bahwa tidak ada data tambahan yang diharapkan. |
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|
Pustaka |
|