Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Especifica el esquema de protección para ejemplos cifrados.
Tipo de datos
UINT32
Comentarios
El valor de este atributo es un miembro de la enumeración MFSampleEncryptionProtectionScheme . En los casos en los que el origen multimedia está basado en MP4, el valor se establece en función del valor del campo scheme_type dentro del cuadro de tipo de esquema ('schm') en el encabezado MP4 ('moov' o 'moof').
Si el campo scheme_type en un archivo basado en MP4, o secuencia, se establece en "cenc" o "cbc1", el atributo MFSampleExtension_Encryption_ProtectionScheme debe establecerse en PROTECTION_SCHEME_AES_CTR o PROTECTION_SCHEME_CBC, respectivamente, y no se debe establecer ningún valor para MFSampleExtension_Encryption_CryptByteBlock y MFSampleExtension_Encryption_SkipByteBlock.
Si el campo scheme_type en un archivo basado en MP4, o secuencia, se establece en "cens" o "cbcs", el atributo MFSampleExtension_Encryption_ProtectionScheme debe establecerse en PROTECTION_SCHEME_AES_CTR o PROTECTION_SCHEME_CBC, respectivamente, y MFSampleExtension_Encryption_CryptByteBlock y MFSampleExtension_Encryption_SkipByteBlock deben establecerse con los valores del cuadro "tenc".
Ejemplos
En el ejemplo siguiente se muestra cómo establecer el MFSampleExtension_Encryption_ProtectionScheme y los atributos de MFSampleExtension_Encryption_CryptByteBlock y MFSampleExtension_Encryption_SkipByteBlock asociados.
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;
}
Requisitos
| Requisito | Value |
|---|---|
| Cliente mínimo compatible |
Windows 10, versión 1709 [solo aplicaciones de escritorio] |
| Servidor mínimo compatible |
No se admite ninguno |
| Encabezado |
|