Menulis Filter Transformasi
[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.]
Bagian ini menjelaskan cara menulis filter transformasi, yang didefinisikan sebagai filter yang memiliki tepat satu pin input dan satu pin output. Untuk mengilustrasikan langkah-langkahnya, bagian ini menjelaskan filter transformasi hipotetis yang menghasilkan video run-length encoded (RLE). Ini tidak menjelaskan algoritma pengodean RLE itu sendiri, hanya tugas yang khusus untuk DirectShow. (DirectShow sudah menyediakan codec RLE melalui filter AVI Compressor .)
Bagian ini mengasumsikan bahwa Anda akan menggunakan pustaka kelas dasar DirectShow untuk membuat filter. Meskipun Anda dapat menulis filter tanpanya, pustaka kelas dasar sangat disarankan.
Catatan
Sebelum menulis filter transformasi, pertimbangkan apakah DirectX Media Object (DMO) akan memenuhi kebutuhan Anda. DMO dapat melakukan banyak hal yang sama seperti filter, dan model pemrograman untuk DMO lebih sederhana. DMO dihosting di DirectShow melalui filter Pembungkus DMO , tetapi juga dapat digunakan di luar DirectShow. DMO sekarang menjadi solusi yang direkomendasikan untuk encoder dan dekoder.
Bagian ini mencakup topik-topik berikut:
- Langkah 1. Pilih Kelas Dasar
- Langkah 2. Mendeklarasikan Kelas Filter
- Langkah 3. Mendukung Negosiasi Jenis Media
- Langkah 4. Mengatur Properti Alokator
- Langkah 5. Mengubah Gambar
- Langkah 6. Menambahkan Dukungan untuk COM
Topik terkait