MFSampleExtension _ Encryption _ ProtectionScheme-Attribut
Gibt das Schutzschema für verschlüsselte Beispiele an.
Datentyp
UINT32
Hinweise
Der Wert dieses Attributs ist ein Member der MFSampleEncryptionProtectionScheme-Enumeration. In Fällen, in denen die Medienquelle MP4-basiert ist, wird _ der Wert auf Grundlage des Werts des Schematypfelds innerhalb des Schematypfelds ("")" im MP4-Header ("moov" oder "moof") festgelegt.
Wenn das _ Schematypfeld in einer MP4-basierten Datei oder einem Stream auf "cenc" oder "cbc1" festgelegt ist, sollte das MFSampleExtension _ Encryption _ ProtectionScheme-Attribut auf PROTECTION SCHEME _ _ AES _ CTR bzw. PROTECTION SCHEME _ _ CBC festgelegt werden, und es sollten keine Werte für MFSampleExtension _ Encryption _ CryptByteBlock und MFSampleExtension _ Encryption _ SkipByteBlockfestgelegt werden.
Wenn _ das Schematypfeld in einer MP4-basierten Datei oder einem Stream auf "cens" oder "cbcs" festgelegt ist, sollte das MFSampleExtension _ Encryption _ ProtectionScheme-Attribut auf PROTECTION SCHEME _ _ AES _ CTR bzw. PROTECTION SCHEME _ _ CBC festgelegt werden, und MFSampleExtension _ Encryption _ CryptByteBlock und MFSampleExtension _ Encryption _ SkipByteBlock müssen mithilfe der Werte im Feld "tenc" festgelegt werden.
Beispiele
Das folgende Beispiel zeigt, wie Sie die Attribute MFSampleExtension _ Encryption _ ProtectionScheme und die zugeordneten Attribute "MFSampleExtension _ Encryption _ CryptByteBlock" und "MFSampleExtension _ Encryption _ SkipByteBlock" festlegen.
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;
}
Anforderungen
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) |
Windows 10, version 1709 desktop apps only (Nur [ Desktop-Apps der Version 1709)] |
| Unterstützte Mindestversion (Server) |
Nicht unterstützt |
| Header |
|