Antarmuka IMemAllocator (strmif.h)

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

Antarmuka IMemAllocator mengalokasikan sampel media, untuk memindahkan data antar pin.

Antarmuka ini digunakan oleh pin yang berbagi alokator, ketika pin input mengekspos antarmuka IMemInputPin . Pin menegosiasikan pin mana yang akan menyediakan alokator. Alokator digunakan untuk mengalokasikan buffer memori, mengambil buffer kosong, dan merilis buffer. Tidak setiap filter membuat alokatornya sendiri, sehingga satu alokator dapat digunakan oleh beberapa filter. Untuk informasi selengkapnya, lihat Cara Filter Tersambung.

Aplikasi biasanya tidak menggunakan antarmuka ini.

Untuk menggunakan alokator, lakukan langkah-langkah berikut:

  1. Panggil metode IMemAllocator::SetProperties untuk menentukan persyaratan buffer, termasuk jumlah buffer dan ukuran setiap buffer.
  2. Panggil metode IMemAllocator::Commit untuk mengalokasikan buffer.
  3. Panggil metode IMemAllocator::GetBuffer untuk mengambil sampel media. Metode ini memblokir hingga sampel berikutnya tersedia.
  4. Setelah selesai dengan setiap sampel, panggil metode IUnknown::Release pada sampel. Sampel tidak dihapus ketika jumlah referensinya mencapai nol. Sebaliknya, sampel kembali ke daftar gratis alokator.
  5. Ketika Anda selesai menggunakan alokator, panggil metode IMemAllocator::D ecommit untuk merilis memori untuk buffer.

Warisan

Antarmuka IMemAllocator mewarisi dari antarmuka IUnknown . IMemAllocator juga memiliki jenis anggota ini:

Metode

Antarmuka IMemAllocator memiliki metode ini.

 
IMemAllocator::Commit

Metode Penerapan mengalokasikan memori buffer.
IMemAllocator::D ecommit

Metode Decommit merilis memori buffer.
IMemAllocator::GetBuffer

Metode GetBuffer mengambil sampel media yang berisi buffer kosong.
IMemAllocator::GetProperties

Metode GetProperties mengambil jumlah buffer yang akan dibuat alokator, dan properti buffer.
IMemAllocator::ReleaseBuffer

Metode ReleaseBuffer merilis sampel media.
IMemAllocator::SetProperties

Metode SetProperties menentukan jumlah buffer yang akan dialokasikan dan ukuran setiap buffer.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header strmif.h (termasuk Dshow.h)