Metode CRenderedInputPin.EndOfStream
[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 ini EndOfStream
memberi tahu pin bahwa tidak ada data tambahan yang diharapkan, sampai perintah eksekusi baru dikeluarkan untuk filter. Metode ini mengimplementasikan metode IPin::EndOfStream .
Sintaks
HRESULT EndOfStream();
Parameter
Metode ini tidak memiliki parameter.
Nilai kembali
Mengembalikan S_OK jika berhasil, atau kode kesalahan sebaliknya.
Keterangan
Jika filter berjalan, metode ini mengirimkan peristiwa EC_COMPLETE ke Filter Graph Manager. Jika tidak, diatur bendera sehingga peristiwa EC_COMPLETE dikirim saat filter berikutnya berjalan. Menghapus filter akan menghapus bendera.
Anda harus mengambil alih metode ini untuk menahan kunci streaming pin:
class CMyInputPin : public CRenderedInputPin
{
private:
CCritSec * const m_pReceiveLock; // Streaming lock.
public:
STDMETHODIMP EndOfStream(void);
/* (Remainder of the class declaration not shown.) */
};
STDMETHODIMP CMyInputPin::EndOfStream(void)
{
CAutoLock lock(m_pReceiveLock);
return CRenderedInputPin::EndOfStream();
}
Selain itu, jika proses filter Menerima panggilan secara asinkron, pin harus menunggu untuk mengirim peristiwa EC_COMPLETE sampai filter telah memproses semua sampel yang tertunda.
Persyaratan
Persyaratan | Nilai |
---|---|
Header |
|
Pustaka |
|