Bagikan melalui


Metode CTransformFilter.Receive

[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 ini Receive menerima sampel media, memprosesnya, dan mengirimkan sampel output ke filter hilir.

Sintaks

HRESULT Receive(
   IMediaSample *pSample
);

Parameter

pSample

Arahkan ke antarmuka IMediaSample pada sampel input.

Nilai kembali

Mengembalikan nilai HRESULT . Nilai yang mungkin termasuk yang berikut ini:

Menampilkan kode Deskripsi
S_FALSE
Filter upstram harus berhenti mengirim sampel.
S_OK
Berhasil.

Keterangan

Pin input filter memanggil metode ini saat menerima sampel. Metode ini memanggil metode CTransformFilter::InitializeOutputSample , yang menyiapkan sampel output baru. Kemudian memanggil metode CTransformFilter::Transform , yang harus diterapkan oleh kelas turunan. Metode Transformasi memproses data input dan menghasilkan data output.

Jika metode Transformasi mengembalikan S_FALSE, Receive metode akan menghilangkan sampel ini. Pada sampel pertama yang dihilangkan, filter mengirimkan peristiwa EC_QUALITY_CHANGE ke manajer grafik filter. Jika tidak, jika metode Transformasi mengembalikan S_OK, filter akan memberikan sampel output. Untuk melakukannya, metode ini memanggil metode IMemInputPin::Receive pada pin input hilir.

Persyaratan

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

Lihat juga

Kelas CTransformFilter