Bagikan melalui


Metode CBaseRenderer.SourceThreadCanWait

[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 SourceThreadCanWait menyimpan atau merilis utas streaming.

Sintaks

virtual HRESULT SourceThreadCanWait(
   BOOL bCanWait
);

Parameter

bCanWait

Nilai Boolean yang menunjukkan apakah akan menyimpan utas streaming. Jika TRUE, utas streaming diblokir saat filter menunggu untuk merender sampel berikutnya. Jika FALSE, utas streaming dirilis.

Nilai kembali

Mengembalikan S_OK.

Keterangan

Memanggil SourceThreadCanWait metode dengan nilai FALSE memaksa filter untuk kembali dari panggilan IMemInputPin::Receive yang diblokir. Saat filter berjalan, filter memblokir Terima panggilan hingga waktu presentasi sampel saat ini. Saat filter dijeda, filter memblokir Terima panggilan tanpa batas waktu. Perilaku ini mengatur aliran data dalam aliran. Namun, ketika filter dihentikan atau dibersihkan, filter tidak boleh diblokir.

Pemblokiran dikontrol oleh metode CBaseRenderer::WaitForRenderTime , yang menunggu dua peristiwa: CBaseRenderer::m_RenderEvent dan CBaseRenderer::m_ThreadSignal. Peristiwa m_RenderEvent disinyalir ketika waktu presentasi tiba. Peristiwa m_ThreadSignal disinyalir ketika SourceThreadCanWait dipanggil dengan nilai FALSE. Memanggil SourceThreadCanWait dengan nilai TRUE mengatur ulang peristiwa.

Metode CBaseRenderer::Stop dan CBaseRenderer::BeginFlush memanggil SourceThreadCanWait dengan nilai FALSE (merilis utas streaming). Metode CBaseRenderer::P ause, CBaseRenderer::Run, dan CBaseRenderer::EndFlush memanggil SourceThreadCanWait dengan nilai TRUE.

Persyaratan

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

Lihat juga

Kelas CBaseRenderer