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 |
---|---|
|
Metode berhasil. |
|
Tidak diterapkan. |
|
Nomor aliran tidak valid. |
|
Jenis media tidak disetel pada satu atau beberapa aliran. |
|
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.
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 |