Panduan untuk Mendaftarkan Filter
[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.]
Informasi registri filter menentukan bagaimana Filter Graph Manager berfungsi selama Intelligent Connect. Dengan demikian, ini mempengaruhi setiap aplikasi yang ditulis untuk DirectShow, bukan hanya aplikasi yang akan menggunakan filter Anda. Anda harus memastikan bahwa filter Anda berkinerja dengan benar, dengan mengikuti panduan ini.
Apakah Anda memerlukan data filter di registri? Untuk banyak filter kustom, tidak ada alasan untuk membuat filter terlihat oleh Pemeta Filter atau Enumerator Perangkat Sistem. Selama Anda mendaftarkan DLL, aplikasi Anda dapat membuat filter menggunakan CoCreateInstance. Dalam hal ini, cukup hilangkan struktur AMOVIESETUP_FILTER dari templat pabrik. (Salah satu kelemahannya adalah filter Anda tidak akan terlihat di GraphEdit. Untuk mengatasinya, Anda dapat membuat kategori "Pengujian" privat menggunakan metode IFilterMapper2::CreateCategory . Anda seharusnya hanya melakukan ini untuk build debug.)
Pilih kategori filter yang benar. Kategori "Filter DirectShow" default adalah untuk filter tujuan umum. Jika sesuai, daftarkan filter Anda dalam kategori yang lebih spesifik. Saat IFilterMapper2 mencari filter, IFilterMapper2 mengabaikan kategori apa pun yang manfaatnya MERIT_DO_NOT_USE atau kurang. Kategori yang tidak ditujukan untuk pemutaran normal memiliki manfaat rendah.
Hindari menentukan MEDIATYPE_None, MEDIASUBTYPE_None, atau GUID_NULL di informasi AMOVIESETUP_MEDIATYPE untuk pin. IFilterMapper2 memperlakukan ini sebagai kartubebas, yang dapat memperlambat proses pembuatan grafik.
Pilih nilai manfaat terendah yang mungkin. Berikut adalah beberapa panduan:
Jenis filter Manfaat yang disarankan Perender default MERIT_PREFERRED. Namun, untuk jenis media standar, perender kustom tidak boleh menjadi default. Perender non-default MERIT_DO_NOT_USE atau MERIT_UNLIKELY Mux MERIT_DO_NOT_USE Decoder MERIT_NORMAL Spitter, parser MERIT_NORMAL atau lebih rendah Filter tujuan khusus; filter apa pun yang dibuat langsung oleh aplikasi MERIT_DO_NOT_USE Menangkap MERIT_DO_NOT_USE Filter "Fallback"; misalnya, Filter Pengonversi Ruang Warna MERIT_UNLIKELY Jika Anda memberikan filter manfaat MERIT_DO_NOT_USE, pertimbangkan apakah Anda perlu mendaftarkan informasi ini terlebih dahulu. (Lihat item 1.)
Jangan mendaftarkan filter dalam kategori "Filter DirectShow" yang menerima RGB 24-bit. Filter Anda akan mengganggu filter Pengonversi Ruang Warna.
Topik terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk