Sampel Video

Objek sampel video adalah implementasi khusus dari antarmuka IMFSample untuk digunakan dengan Enhanced Video Renderer (EVR). Untuk membuat instans objek ini, panggil fungsi MFCreateVideoSampleFromSurface . Fungsi ini mengambil pointer ke permukaan Direct3D dan mengembalikan pointer ke antarmuka IMFSample . Jenis objek berikut harus mengalokasikan sampel menggunakan fungsi ini:

Objek sampel video mengimplementasikan antarmuka berikut:

Jika parameter pUnkSurface dari MFCreateVideoSampleFromSurfacenon-NULL, sampel video yang dihasilkan berisi satu buffer media yang merangkum permukaan Direct3D. Objek buffer ini memiliki fungsionalitas terbatas:

Satu-satunya cara untuk mengakses permukaan dari buffer adalah dengan memanggil IMFGetService::GetService, menggunakan pengidentifikasi layanan MR_BUFFER_SERVICE.

Jika parameter pUnkSurface adalah NULL, sampel video dibuat dengan buffer media nol. Untuk menambahkan buffer sampel, lakukan hal berikut:

  1. Buat permukaan Direct3D.

  2. Buat buffer permukaan dengan memanggil MFCreateDXSurfaceBuffer. Untuk informasi selengkapnya, lihat DirectX Surface Buffer.

  3. Tambahkan buffer ke sampel dengan memanggil IMFSample::AddBuffer.

Gunakan pendekatan ini jika Anda memerlukan memori permukaan agar dapat diakses melalui antarmuka IMF2DBuffer .

Buffer Media

Sampel Media