Bagikan melalui


Input dan output data

[Fitur yang terkait dengan halaman ini, Pemutar Media Windows SDK, adalah fitur warisan. Ini telah digantikan oleh MediaPlayer. MediaPlayer telah dioptimalkan untuk Windows 10 dan Windows 11. Microsoft sangat menyarankan agar kode baru menggunakan MediaPlayer alih-alih Pemutar Media Windows SDK, jika memungkinkan. Microsoft menyarankan agar kode yang ada yang menggunakan API warisan ditulis ulang untuk menggunakan API baru jika memungkinkan.]

Pemutar Media Windows menyediakan data audio atau video ke plug-in DSP melalui buffer input yang dialokasikan oleh Pemutar Media Windows. Plug-in DSP mengembalikan data yang diproses ke Pemutar Media Windows melalui buffer output yang juga dialokasikan oleh Pemutar Media Windows. Pemutar Media Windows mengelola proses meneruskan data antara dirinya sendiri dan plug-in DSP dengan memanggil metode yang diterapkan oleh plug-in. Untuk plug-in yang bertindak sebagai DirectX Media Object (DMO), prosesnya berfungsi sebagai berikut:

  1. Pemutar Media Windows memanggil IMediaObject::P rocessInput, meneruskan penunjuk ke objek IMediaBuffer ke plug-in DSP.
  2. Plug-in DSP menyimpan jumlah referensi pada objek buffer input. Plug-in DSP mengembalikan HRESULT keberhasilan atau kegagalan yang sesuai.
  3. Pemutar Media Windows memanggil IMediaObject::P rocessOutput, meneruskan penunjuk ke array struktur DMO_OUTPUT_DATA_BUFFER (yang berisi buffer output) ke plug-in DSP.
  4. Plug-in DSP memproses data dalam buffer input lalu menyalin data ke buffer output yang sesuai. Plug-in DSP merilis jumlah referensi pada objek buffer input ketika semua data dalam buffer telah diproses. Plug-in DSP kemudian mengembalikan HRESULT keberhasilan atau kegagalan yang sesuai.
  5. Pemutar Media Windows merender konten dalam buffer output.

Untuk plug-in yang bertindak sebagai Transformasi Yayasan Media (MFT), prosesnya berfungsi sebagai berikut:

  • Pemutar Media Windows memanggil IMFTransform::P rocessInput, meneruskan pointer ke objek antarmuka IMFSample ke plug-in DSP.
    1. Plug-in DSP menyimpan jumlah referensi pada antarmuka IMFSample . Plug-in DSP mengembalikan HRESULT keberhasilan atau kegagalan yang sesuai.
    2. Pemutar Media Windows memanggil IMFTransform::P rocessOutput, meneruskan penunjuk ke array struktur MFT_OUTPUT_DATA_BUFFER (yang berisi buffer output) ke plug-in DSP.
    3. Plug-in DSP memproses data dalam buffer input lalu menyalin data ke buffer output yang sesuai. Plug-in DSP merilis jumlah referensi pada objek buffer input ketika semua data dalam buffer telah diproses. Plug-in DSP kemudian mengembalikan HRESULT keberhasilan atau kegagalan yang sesuai.
    4. Pemutar Media Windows merender konten dalam buffer output.

Proses ini berulang terus menerus saat plug-in diaktifkan dan Pemutar Media Windows memiliki konten untuk dirender.

Catatan

Jangan menulis kode yang menulis data ke buffer input atau membaca data dari buffer output. Salah mengakses buffer data dapat menghasilkan hasil yang tidak terduga.

 

Gambaran Umum Pengembang Plug-in DSP