Pembatasan Bidang Penggunaan

Catatan

Topik ini berlaku untuk Windows 7 atau yang lebih baru.

 

Pembatasan bidang penggunaan adalah ketentuan yang membatasi bagaimana lisensi untuk teknologi tertentu dapat digunakan.

Media Foundation menyediakan mekanisme untuk memberlakukan pembatasan bidang penggunaan pada transformasi Media Foundation (MFTs), terutama codec. Mekanisme ini mengharuskan MFT untuk memblokir penggunaannya sendiri oleh aplikasi sampai aplikasi telah melakukan jabat tangan dengan MFT. Media Foundation tidak mendefinisikan jabat tangan —biasanya, itu akan melibatkan semacam pertukaran kriptografi.

Pendaftaran dan Enumerasi

Jika MFT memiliki batasan bidang penggunaan, atur bendera MFT_ENUM_FLAG_FIELDOFUSE saat Anda mendaftarkan MFT. Bendera ini berlaku untuk API pendaftaran MFT berikut:

Secara default, MFTs yang terdaftar dengan bendera ini dikecualikan dari hasil enumerasi. Untuk menghitung MFT dengan pembatasan bidang penggunaan, panggil MFTEnumEx dan tentukan bendera MFT_ENUM_FLAG_FIELDOFUSE di parameter Bendera . Diagram berikut mengilustrasikan hubungan ini.

diagram memperlihatkan mft dan aplikasi yang mengirim data ke registri

Fungsi MFTEnum selalu mengecualikan MFT apa pun yang memiliki batasan bidang penggunaan.

Membuka kunci MFT

Untuk menggunakan MFT dengan batasan bidang penggunaan, lakukan langkah-langkah berikut:

  1. Aplikasi ini mengimplementasikan antarmuka IMFFieldOfUseMFTUnlock .
  2. Metode IMFFieldOfUseMFTUnlock::Unlock mengambil pointer ke antarmuka IUnknown MFT.
  3. Dalam metode Buka Kunci , aplikasi melakukan jabat tangan yang diperlukan, menggunakan mekanisme apa pun yang ditentukan oleh MFT. Langkah ini tidak ditentukan oleh Media Foundation API.
  4. Jika metode Buka Kunci berhasil, MFT akan membuka kuncinya sendiri.

Aplikasi menentukan penunjuk IMFFieldOfUseMFTUnlock dengan mengatur atribut MFT_FIELDOFUSE_UNLOCK_Attribute . Ada beberapa cara berbeda untuk mengatur atribut ini, tergantung pada cara aplikasi Anda membuat dekoder atau alur pengodean:

API Cara Membuka Kunci Bidang Penggunaan
Pembaca Sumber Jika aplikasi Anda menggunakan Pembaca Sumber untuk mendekode file media, atur atribut MFT_FIELDOFUSE_UNLOCK_Attribute dalam parameter konfigurasi. Lihat Atribut Pembaca Sumber.
Penulis Sink Jika aplikasi Anda menggunakan penulis sink untuk mengodekan file media, atur atribut MFT_FIELDOFUSE_UNLOCK_Attribute dalam parameter konfigurasi. Lihat Atribut Penulis Sink.
Transkode Cepat Jika aplikasi Anda menggunakan fitur Fast Transcode untuk membuat topologi pengodean, atur MFT_FIELDOFUSE_UNLOCK_Attribute saat Anda memanggil IMFTranscodeProfile::SetContainerAttributes. Untuk informasi selengkapnya tentang fitur Fast Transcode, lihat TRANSCODE API.
Topologi Jika Anda membuat topologi secara langsung, atur MFT_FIELDOFUSE_UNLOCK_Attribute sebagai atribut pada topologi. Lihat Atribut Topologi.
Objek Aktivasi MFT Jika aplikasi Anda secara langsung menghitung dekoder atau encoder yang akan digunakannya, atur MFT_FIELDOFUSE_UNLOCK_Attribute pada pointer IMFActivate yang dikembalikan oleh fungsi MFTEnumEx .
Atur atribut sebelum memanggil IMFActivate::ActivateObject untuk membuat MFT. Objek aktivasi memanggil IMFFieldOfUseMFTUnlock::Unlock saat membuat MFT.

 

Diagram berikut menunjukkan hubungan antara objek aktivasi MFT dan antarmuka IMFFieldOfUseMFTUnlock .

diagram memperlihatkan aplikasi, objek aktivasi, dan mft dengan panah ke objek fou, yang memiliki panah kembali ke mft

Transformasi Media Foundation