Mencari

[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.]

Filter mendukung pencarian melalui antarmuka IMediaSeeking . Aplikasi meminta Filter Graph Manager untuk IMediaSeeking dan menggunakannya untuk mengeluarkan perintah pencarian. Filter Graph Manager mendistribusikan setiap perintah pencarian ke semua filter perender dalam grafik. Setiap perender melewati perintah upstream, melalui pin output filter upstram, hingga mencapai filter yang dapat menjalankan pencarian. Biasanya filter sumber atau filter pengurai, seperti Pemisah AVI, melakukan operasi pencarian.

Saat filter melakukan operasi pencarian, filter menghapus data yang tertunda. Hasilnya adalah untuk meminimalkan latensi perintah pencarian, karena data yang ada dihapus dari grafik. Setelah perintah pencarian, waktu streaming direset ke nol.

Diagram berikut mengilustrasikan urutan peristiwa.

urutan peristiwa

Jika filter pengurai memiliki lebih dari satu pin output, biasanya menunjuk salah satunya untuk menerima perintah pencarian. Pin lain menolak atau mengabaikan perintah pencarian apa pun yang mereka terima. Dengan cara ini, pengurai membuat semua alirannya tetap sinkron. Namun, semua pin output harus mengimplementasikan IMediaSeeking::GetCapabilities dan IMediaSeeking::CheckCapabilities untuk mengembalikan kemampuan pencarian filter. Ini memastikan bahwa Filter Graph Manager mengembalikan nilai yang benar ke aplikasi.

Antarmuka IMediaPosition tidak digunakan lagi untuk filter. Klien Automation masih perlu menggunakan antarmuka ini pada Filter Graph Manager, karena IMediaSeeking tidak kompatibel dengan Automation, tetapi Filter Graph Manager menerjemahkan semua panggilan IMediaPosition ke dalam panggilan IMediaSeeking .

Pembilasan

Waktu dan Jam di DirectShow