Metode IMFTransform::P rocessEvent (mftransform.h)

Mengirim peristiwa ke aliran input pada transformasi Media Foundation (MFT) ini.

Sintaks

HRESULT ProcessEvent(
  [in] DWORD         dwInputStreamID,
  [in] IMFMediaEvent *pEvent
);

Parameter

[in] dwInputStreamID

Pengidentifikasi aliran input. Untuk mendapatkan daftar pengidentifikasi aliran, panggil IMFTransform::GetStreamIDs.

[in] pEvent

Arahkan ke antarmuka IMFMediaEvent dari objek peristiwa.

Menampilkan nilai

Metode mengembalikan HRESULT. Nilai yang mungkin termasuk, tetapi tidak terbatas pada, yang ada dalam tabel berikut.

Menampilkan kode Deskripsi
S_OK
Metode berhasil.
E_NOTIMPL
Tidak diterapkan.
MF_E_INVALIDSTREAMNUMBER
Nomor aliran tidak valid.
MF_E_TRANSFORM_TYPE_NOT_SET
Jenis media tidak disetel pada satu atau beberapa aliran.
MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT
Alur tidak boleh menyebarluaskan peristiwa.

Keterangan

MFT dapat menangani pengiriman peristiwa di hilir, atau dapat membiarkan alur melakukan ini, seperti yang ditunjukkan oleh nilai yang dikembalikan:

  • E_NOTIMPL: MFT mengabaikan semua peristiwa, dan alur harus mengirim semua peristiwa di hilir. Setelah alur menerima nilai pengembalian ini, alur mungkin tidak memanggil ProcessEvent lagi.
  • S_OK: MFT telah memeriksa peristiwa ini, tetapi alur harus mengirim peristiwa ke hilir. Secara internal, MFT mungkin merespons peristiwa dalam beberapa cara, atau mungkin mengabaikan peristiwa.
  • MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT: Alur tidak boleh menyebarluaskan peristiwa ini ke hilir. Baik MFT akan mengirim peristiwa di hilir, atau MFT akan mengonsumsi peristiwa dan tidak mengirimkannya ke hilir. MFT hanya boleh menggunakan peristiwa jika peristiwa harus berhenti di MFT ini dan tidak melakukan perjalanan lebih jauh ke hilir. Tetapi dalam kebanyakan kasus, acara harus melakukan perjalanan hilir.
Untuk mengirim peristiwa di hilir, MFT menambahkan peristiwa ke objek koleksi yang disediakan oleh klien di anggota pEvents dari struktur MFT_OUTPUT_DATA_BUFFER , ketika klien memanggil IMFTransform::P rocessOutput.

Peristiwa harus diserialisasikan dengan sampel yang datang sebelum dan sesudahnya. Lampirkan peristiwa ke sampel output yang mengikuti peristiwa. (Alur akan memproses peristiwa terlebih dahulu, lalu sampel.) Jika MFT menahan satu atau beberapa sampel antara panggilan ke IMFTransform::P rocessInput dan ProcessOutput, MFT harus menangani pengiriman semua peristiwa di hilir, karena dalam situasi ini alur tidak dapat menghubungkan sampel input dengan sampel output.

Jika MFT tidak menahan sampel dan tidak perlu memeriksa peristiwa apa pun, MFT dapat mengembalikan E_NOTIMPL.

Jika MFT_UNIQUE_METHOD_NAMES ditentukan sebelum menyertakan mftransform.h, metode ini diganti namanya menjadi MFTProcessEvent. Lihat Membuat Objek DMO/MFT Hibrid.

Persyaratan

   
Klien minimum yang didukung Windows Vista [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header mftransform.h
Pustaka Mfuuid.lib

Lihat juga

IMFTransform

Transformasi Media Foundation