Bagikan melalui


Metode CBaseOutputPin.DecideAllocator

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

Metode DecideAllocator memilih alokator memori.

Sintaks

virtual HRESULT DecideAllocator(
   IMemInputPin  *pPin,
   IMemAllocator **pAlloc
);

Parameter

pPin

Arahkan ke antarmuka IMemInputPin pin input.

pAlloc

Alamat variabel yang menerima penunjuk ke antarmuka IMemAllocator alokator .

Nilai kembali

Mengembalikan S_OK jika berhasil, atau nilai HRESULT yang menunjukkan penyebab kesalahan.

Keterangan

Metode ini dipanggil di akhir proses koneksi pin. Lakukan langkah-langkah berikut:

  1. Memanggil metode IMemInputPin::GetAllocatorRequirements untuk mengambil persyaratan buffer pin input, jika ada.
  2. Memanggil metode IMemInputPin::GetAllocator untuk meminta alokator dari pin input. Jika pin input tidak menyediakan alokator, pin output membuatnya dengan memanggil metode kelas CBaseOutputPin::InitAllocator .
  3. Memanggil metode kelas CBaseOutputPin::D ecideBufferSize , yang mengatur properti alokator. Ini adalah metode virtual murni; kelas turunan harus mengimplementasikannya.
  4. Memanggil metode IMemInputPin::NotifyAllocator , yang memberi tahu pin input alokator yang digunakan.

Persyaratan

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

Lihat juga

Kelas CBaseOutputPin