Overlay Mixer Filter

[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 Overlay Mixer adalah perender video yang dirancang khusus untuk pemutaran DVD dan streaming video siaran dengan teks tertutup baris-21. Overlay Mixer juga mendukung Ekstensi Port Video (VPU), memungkinkannya untuk bekerja dengan dekode MPEG-2 perangkat keras atau penyetel TV analog yang mengirim video langsung ke kartu grafis, bukan melalui bus PCI.

Catatan

Video Mixing Renderer 9 sekarang lebih disukai daripada filter Overlay Mixer, kecuali dalam skenario VPE.

 

Overlay Mixer menggunakan DirectDraw untuk penyajian. Ini membutuhkan permukaan overlay pada kartu grafis. Aliran video utama harus terhubung ke pin 0. Aliran sekunder (grafik caption tertutup atau subgambar DVD) terhubung ke pin 1 dan yang lebih tinggi. Overlay Mixer memadukan aliran sekunder langsung ke suface utama; itu tidak mencampur atau alpha memadukannya.

Overlay Mixer menggunakan Video Renderer untuk manajemen jendela. Video Renderer terhubung ke pin output Overlay Mixer.

Filter ini ditambahkan ke grafik filter secara otomatis saat aplikasi menggunakan antarmuka IDvdGraphBuilder dan ICaptureGraphBuilder2 untuk membuat grafik. Filter Graph Manager tidak akan secara otomatis menambahkan Overlay Mixer ke grafik.

Catatan

Dalam tabel berikut, subjenis media yang diterima pada pin input 0 bergantung pada perangkat keras. Overlay Mixer tidak dapat menentukan apakah subjenis tertentu didukung sampai membuat permukaan DirectDraw. Oleh karena itu, satu-satunya cara bagi filter upstram untuk menentukan apakah subjenis didukung adalah dengan mencoba koneksi dengan subjenis tersebut.

 

Label Nilai
Antarmuka Filter IAMOverlayFX, IAMVideoDecimationProperties, IBaseFilter, IDDrawExclModeVideo, IKsPropertySet, IMediaPosition, IMediaSeeking, IMixerOCX, IQualProp, IVPNotify, IVPNotify2
Jenis Media Pin Input Jenis Utama: MEDIATYPE_Video
Subtipe:
  • MEDIASUBTYPE_Overlay (pin 0 saja)
  • Format DIRECTDraw YUV (hanya sematkan 0)
  • Format Akselerasi Video DirectDraw (pin 0 saja)
  • Format RGB DirectDraw (semua pin input)
Jenis Format:
  • Format_VIDEOINFO
  • Format_VIDEOINFO2
Antarmuka Pin Input IAMVideoAccelerator, IKsPin, IKsPropertySet, IMemInputPin, IMixerPinConfig, IMixerPinConfig2, IOverlay (hanya pin 0), IPin, IPinConnection, IQualityControl, IVPNotify, IVPNotify2
Tipe Media Pin Output MEDIATYPE_Video, MEDIASUBTYPE_Overlay
Antarmuka Pin Output IMediaPosition, IMediaSeeking, IPin, IQualityControl
Filter CLSID CLSID_OverlayMixer
CLSID Halaman Properti Tidak ada halaman properti.
Eksekusi qdvd.dll
Merit MERIT_DO_NOT_USE
Kategori Filter CLSID_LegacyAmFilterCategory

 

Keterangan

Overlay Mixer menggunakan penekanan warna tujuan untuk mencampur permukaan video dengan overlay. Ini memadukan kunci warna dan video sekunder ke permukaan utama, dan mengirim video utama ke permukaan overlay. Kartu grafis kemudian menyusun dua permukaan ke dalam buffer bingkainya.

Untuk menguji apakah driver grafis mendukung overlay perangkat keras, panggil IDirectDraw7::GetCaps. Jika bidang dwMaxVisibleOverlays dalam struktur DDCAPS lebih besar dari nol, driver mendukung overlay perangkat keras.

Aplikasi dapat mengontrol beberapa perilaku pada Overlay Mixer melalui antarmuka IMixerPinConfig2 . Pengembang game dapat menggunakan Overlay Mixer untuk menampilkan video dalam Mode Eksklusif DirectDraw, seperti yang dijelaskan nanti di bagian ini. Video Mixing Renderer Filter 9 (VMR-9) sekarang memberikan dukungan yang lebih baik untuk video dalam game. Untuk informasi selengkapnya, lihat Menggunakan Video Mixing Renderer.

Informasi berikut disediakan untuk keuntungan pengembang filter, dan pengembang game yang ingin menggunakan Overlay Mixer dalam Mode Eksklusif DirectDraw.

Overlay Mixer Internal Operations

Overlay Mixer mengekspos pin input untuk setiap aliran masuk. Biasanya, ada tiga pin input: sematkan 0 untuk data video, dan sematkan 1 dan 2 untuk data subgambar baris 21 dan DVD. Secara internal, Overlay Mixer membuat objek DirectDraw dengan permukaan utama yang terdiri dari seluruh desktop, ditambah permukaan overlay yang persegi panjangnya ditentukan oleh ukuran aliran video pada Pin 0. Jika dekoder tidak menentukan kunci warna, Overlay Mixer menggunakan tombol warna default: abu-abu gelap untuk kartu grafis dan magenta yang lebih baru untuk kartu 256 warna yang lebih lama.

Catatan

Hasilnya tidak terdefinisi jika dekoder memberikan dua aliran video sekunder secara bersamaan di tempat yang sama pada permukaan overlay. (Ini kadang-kadang terjadi dengan DVD yang berisi subgambar dan aliran baris 21.) Video mungkin berkedip, atau hanya menampilkan salah satu aliran.

 

Pada Windows Vista atau yang lebih baru, Overlay Mixer menonaktifkan komposisi Desktop Window Manager (DWM) jika driver tampilan mendukung overlay perangkat keras. Aplikasi harus menghindari penggunaan filter Overlay Mixer; gunakan VMR-9 atau Enhanced Video Renderer (EVR) sebagai gantinya.

Koneksi Upstram dengan Dekoder Video

Biasanya pin input Overlay Mixer terhubung ke dekoder video upstram. Aliran video utama harus tersambung ke pin 0. Aliran baris 21 atau subgambar terhubung ke pin 1 atau yang lebih tinggi. Jika dekoder adalah dekoder perangkat lunak yang menggunakan CPU host secara eksklusif, koneksi antara dekoder dan Pin 0 adalah koneksi IMemInputPin . Jika dekoder menggunakan akselerasi perangkat keras, koneksi ke Pin 0 harus menggunakan inferferensi IAMVideoAccelerator . Kedua jenis koneksi ini saling eksklusif.

Jika decoder menarik langsung ke permukaan overlay, decoder harus menggunakan antarmuka IOverlay pada pin 0 dan mengimplementasikan antarmuka IOverlayNotify .

Filter yang membungkus dekoder perangkat keras dan terhubung ke Overlay Mixer melalui port video harus mengimplementasikan antarmuka IVPConfig . Overlay Mixer mengimplementasikan antarmuka IVPNotify . Kedua antarmuka ini memungkinkan dekoder untuk menentukan permukaan overlay yang diperlukannya, dan mereka memungkinkan Overlay Mixer untuk menginformasikan dekoder lokasi permukaan tersebut dalam memori video.

Overlay Mixer juga memastikan bahwa persegi panjang video diskalakan dengan benar. Pengambilan video melibatkan masalah tertentu sehubungan dengan penskalaan gambar pratinjau dan menangkap bingkai video yang saling terkait. Jika Anda mengembangkan filter atau driver WDM untuk perangkat pengambilan video perangkat keras, lihat halaman referensi IVPConfig dan IVPNotify untuk informasi lebih lanjut tentang topik ini.

Overlay Mixer tidak digunakan dalam skenario pengambilan 1394 atau USB. Ini digunakan dalam pengambilan video melalui bus PCI.

Koneksi Hilir dengan Perender Video

Overlay Mixer memiliki pin output yang terhubung ke filter Video Renderer . Perender Video dalam hal ini tidak merender video; itu hanya mengelola jendela video.

Koneksi pin menggunakan antarmuka IOverlay daripada antarmuka IMemInputPin . Video Renderer melewati handel jendelanya melalui Overlay Mixer ke DirectDraw, yang mengelola kliping persegi panjang. Aplikasi dapat mengontrol Video Renderer melalui antarmuka IVideoWindow dan IBasicVideo2 pada Filter Graph Manager.

Mode Eksklusif DirectDraw

Mode eksklusif DirectDraw Overlay Mixer memungkinkan game menampilkan video di beberapa bagian layar. Dalam mode ini, Overlay Mixer merender video langsung ke permukaan DirectDraw yang dibuat oleh aplikasi game, bukan ke jendela yang disediakan oleh Video Renderer. Ini memungkinkan game untuk mengontrol kunci warna. Overlay Mixer hanya mengekspos satu pin input dalam mode eksklusif DirectDraw, yang berarti bahwa tidak ada pencampuran subgambar Baris 21 atau DVD yang dapat dilakukan dalam mode ini.

Untuk menggunakan Overlay Mixer dalam mode eksklusif DirectDraw, buat instans Overlay Mixer dan kueri untuk antarmuka IDDrawExclModeVideo sebelum membangun grafik filter. Kemudian panggil IDDrawExclModeVideo::SetDDrawSurface untuk menentukan permukaan DirectDraw untuk penyajian. Salah satu batasan signifikan dari mode ini adalah bahwa permainan tidak mendapatkan akses ke bit video yang sebenarnya. Jika Anda menggunakan IDDrawExclModeVideo, aplikasi Anda membuat permukaan utama, dan Overlay Mixer membuat permukaan overlay.

Anda juga dapat menggunakan mode eksklusif DirectDraw untuk melakukan penyajian tanpa jendela—misalnya, di halaman Web—tetapi ini tidak disarankan, karena Overlay Mixer tidak melakukan pencampuran apa pun dalam mode ini. Ini berarti bahwa tidak ada baris 21 atau data subgambar yang dapat ditampilkan.

Filter DirectShow