Bagikan melalui


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

hierarki kelas cbaseoutputpin

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
Amfilter.h (termasuk Streams.h)
Pustaka
Strmbase.lib (build ritel);
Strmbasd.lib (build debug)