Bagikan melalui


Metode CBaseRenderer.Receive

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

Metode Receive ini menerima sampel media berikutnya dalam aliran.

Sintaks

virtual Receive(
   IMediaSample *pMediaSample
);

Parameter

pMediaSample

Arahkan ke antarmuka IMediaSample sampel.

Nilai kembali

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

Keterangan

Pin input memanggil metode ini ketika menerima sampel dari filter upstram.

Jika filter berjalan, metode ini melakukan langkah-langkah berikut:

  1. Menjadwalkan sampel untuk penyajian (CBaseRenderer::P repareReceive).
  2. Menunggu waktu yang dijadwalkan (CBaseRenderer::WaitForRenderTime).
  3. Merender sampel (CBaseRenderer::Render).
  4. Merilis sampel (CBaseRenderer::ClearPendingSample).

Jika filter dijeda, metode melakukan langkah-langkah berikut:

  1. Memberi tahu kelas turunan bahwa sampel tersedia (CBaseRenderer::OnReceiveFirstSample).
  2. Menunggu waktu yang dijadwalkan.
  3. Merender sampel.
  4. Merilis sampel.

Saat dijeda, metode menunggu di langkah 2 hingga filter beralih ke status berjalan. Pada saat itu, filter menjadwalkan sampel.

Di kelas dasar, metode OnReceiveFirstSample tidak melakukan apa pun. Kelas turunan dapat mengambil alihnya. Misalnya, saat perender video dijeda, perender video menampilkan sampel pertama sebagai gambar diam.

Persyaratan

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

Lihat juga

Kelas CBaseRenderer