Perubahan Format Dinamis
[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.]
Ketika dua filter terhubung, filter tersebut menyetujui jenis media, yang menjelaskan format data yang akan dikirimkan filter upstram. Dalam kebanyakan kasus, jenis media diperbaiki selama durasi koneksi. Namun, DirectShow memang menawarkan dukungan terbatas bagi filter untuk mengubah jenis media. Saat filter beralih jenis media, filter disebut perubahan format dinamis . Jika Anda menulis filter DirectShow, Anda harus mengetahui mekanisme untuk perubahan format dinamis. Bahkan jika filter Anda tidak mendukung perubahan tersebut, filter tersebut harus merespons dengan benar jika filter lain meminta format baru.
DirectShow mendefinisikan beberapa mekanisme berbeda untuk perubahan format dinamis, tergantung pada status grafik filter dan jenis perubahan yang diperlukan.
- Jika grafik dihentikan, pin dapat menyambungkan kembali dan menegosiasikan ulang jenis media. Untuk informasi selengkapnya, lihat Menyambungkan Ulang Pin.
- Beberapa filter dapat menyambungkan kembali pin bahkan saat grafik aktif (berjalan atau dijeda). Untuk informasi selengkapnya tentang mekanisme ini, lihat Dynamic Reconnection.
Jika tidak, jika grafik aktif, tetapi filter yang dimaksud tidak mendukung koneksi ulang pin dinamis, ada tiga mekanisme yang mungkin untuk mengubah format:
- QueryAccept (Hilir) digunakan saat Jika pin output mengusulkan perubahan format ke peer hilirnya, tetapi hanya jika format baru tidak memerlukan buffer yang lebih besar.
- QueryAccept (Upstream) digunakan saat pin input mengusulkan perubahan format ke peer upstream-nya. Format baru bisa berukuran sama, atau bisa lebih besar.
- ReceiveConnection digunakan saat pin output mengusulkan perubahan format ke peer hilirnya, dan format baru memerlukan buffer yang lebih besar.
Topik terkait
-
Menangani Perubahan Format dari Video Renderer