Korespondensi Operasional dengan Driver Perangkat Kompensasi Gerakan

[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.]

Bagian ini berisi deskripsi sisi driver perangkat Kompensasi Gerakan dari antarmuka DirectX VA. (Referensi:Windows 2000 DDK - Driver Grafis - Panduan Desain - 3.0 DirectDraw DDI - 3.12 Motion Compensation. Lihat Windows DDK untuk dokumentasi tentang struktur dalam huruf tebal.)

Item berikut mengacu pada entri yang diakses melalui struktur DD_MOTIONCOMPCALLBACKS :

  1. Pada awal pemrosesan yang relevan, DdMoCompCreate driver perangkat digunakan untuk memberi tahu driver bahwa dekoder perangkat lunak akan mulai menggunakan objek akselerasi video.
  2. GUID yang diterima dari IAMVideoAccelerator::GetVideoAcceleratorGUIDs berasal dari DdMoCompGetGUIDs driver perangkat.
  3. Panggilan ke IAMVideoAccelerator pin input hilir::GetUncompFormatsSupported mengembalikan data dari DdMoCompGetFormats driver perangkat.
  4. Struktur data DXVA_ConnectMode dari IAMVideoAcceleratorNotify::GetCreateVideoAcceleratorData diteruskan ke DdMoCompCreate driver perangkat.
  5. Data yang dikembalikan dari IAMVideoAccelerator::GetCompBufferInfo berasal dari DdMoCompGetBuffInfo driver perangkat.
  6. Buffer yang dikirim menggunakan IAMVideoAccelerator::Execute diterima oleh DdMoCompRender driver perangkat.
  7. Penggunaan IAMVideoAccelerator::QueryRenderStatus memanggil DdMoCompQueryStatus driver perangkat. Kode pengembalian DDERR_WASSTILLDRAWING dari DdMoCompQueryStatus akan dilihat oleh dekoder host sebagai kode pengembalian E_PENDING dari IAMVideoAccelerator::QueryRenderStatus.
  8. Data yang dikirim ke IAMVideoAccelerator::BeginFrame diterima oleh DdMoCompBeginFrame driver perangkat. Kode pengembalian E_PENDING diperlukan dari DdMoCompBeginFrame agar E_PENDING dilihat oleh dekoder host sebagai respons terhadap IAMVideoAccelerator::BeginFrame.
  9. Data yang dikirim ke IAMVideoAccelerator::EndFrame diterima oleh DdMoCompEndFrame driver perangkat.
  10. Pada akhir pemrosesan yang relevan, DdMoCompDestroy driver perangkat digunakan untuk memberi tahu driver bahwa objek akselerasi video saat ini tidak akan lagi digunakan, sehingga driver dapat melakukan pembersihan yang diperlukan.