Perubahan Format Dinamis
[Fitur yang terkait dengan halaman ini, DirectShow, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer, IMFMediaEngine, dan Tangkapan 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 Audio/Video Capture 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, mereka 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 untuk 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 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 Kembali Pin.
- Beberapa filter dapat menyambungkan kembali pin bahkan saat grafik aktif (berjalan atau dijeda). Untuk informasi selengkapnya tentang mekanisme ini, lihat Koneksi Ulang Dinamis.
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 upstramnya. Format baru bisa berukuran sama, atau bisa lebih besar.
- ReceiveConnection digunakan ketika pin output mengusulkan perubahan format ke peer hilirnya, dan format baru memerlukan buffer yang lebih besar.
Topik terkait