Bagikan melalui


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
Amextra.h (termasuk Streams.h)
Pustaka
Strmbase.lib (build ritel);
Strmbasd.lib (build debug)

Lihat juga

Kelas CRenderedInputPin