atribut MFSampleExtension_Encryption_ProtectionScheme
Menentukan skema perlindungan untuk sampel terenkripsi.
Jenis Data
UINT32
Keterangan
Nilai atribut ini adalah anggota enumerasi MFSampleEncryptionProtectionScheme . Dalam kasus di mana sumber media berbasis MP4, nilai diatur berdasarkan nilai bidang scheme_type dalam kotak jenis skema ('schm') di header MP4 ('moov' atau 'moof').
Jika bidang scheme_type dalam file berbasis MP4, atau streaming, diatur ke 'cenc' atau 'cbc1', maka atribut MFSampleExtension_Encryption_ProtectionScheme harus diatur ke PROTECTION_SCHEME_AES_CTR atau PROTECTION_SCHEME_CBC, masing-masing, dan tidak ada nilai yang harus diatur untuk MFSampleExtension_Encryption_CryptByteBlock dan MFSampleExtension_Encryption_SkipByteBlock.
Jika bidang scheme_type dalam file berbasis MP4, atau aliran, diatur ke 'cens' atau 'cbcs', maka atribut MFSampleExtension_Encryption_ProtectionScheme harus diatur ke PROTECTION_SCHEME_AES_CTR atau PROTECTION_SCHEME_CBC, masing-masing, dan MFSampleExtension_Encryption_CryptByteBlock dan MFSampleExtension_Encryption_SkipByteBlock harus diatur menggunakan nilai dalam kotak 'tenc'.
Contoh
Contoh berikut menunjukkan cara mengatur MFSampleExtension_Encryption_ProtectionScheme dan atribut MFSampleExtension_Encryption_CryptByteBlock dan MFSampleExtension_Encryption_SkipByteBlock terkait.
HRESULT AddEncryptionAttributes(_In_ IMFSample* pSample, _In_ bool fIsEncrypted)
{
HRESULT hr = S_OK;
if (fIsEncrypted)
{
//Set Encryption Protection Scheme
hr = pSample->UINT32(MFSampleExtension_Encryption_ProtectionScheme,
SAMPLE_ENCRYPTION_PROTECTION_SCHEME_AES_CBC);
if (FAILED(hr))
return hr;
//Set the Initialization Vector (IV)
//(spSampleEncryptionData is omitted from this example for simplicity.)
hr = pSample->SetBlob(MFSampleExtension_Encryption_SampleID,
(BYTE*)(spSampleEncryptionData->m_pInitializationVector),
spSampleEncryptionData->m_bIVSize);
if (FAILED(hr))
return hr;
//Set crypt and skip byte blocks for pattern encryption
hr = pSample->SetUINT32(MFSampleExtension_Encryption_CryptByteBlock, 1);
if (FAILED(hr))
return hr;
hr = pSample->SetUINT32(MFSampleExtension_Encryption_SkipByteBlock, 9);
if (FAILED(hr))
return hr;
}
return hr;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows 10, versi 1709 [hanya aplikasi desktop] |
Server minimum yang didukung |
Tidak ada yang didukung |
Header |
|
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk