MFSampleExtension_Encryption_ProtectionScheme 특성

암호화된 샘플에 대한 보호 체계를 지정합니다.

데이터 형식

UINT32

설명

이 특성의 값은 MFSampleEncryptionProtectionScheme 열거형의 멤버입니다. 미디어 원본이 MP4 기반인 경우 값은 MP4 헤더('moov' 또는 'moof')의 체계 유형 상자('schm') 내의 scheme_type 필드 값을 기반으로 설정됩니다.

MP4 기반 파일 또는 스트림의 scheme_type 필드가 'cenc' 또는 'cbc1'로 설정된 경우 MFSampleExtension_Encryption_ProtectionScheme 특성을 각각 PROTECTION_SCHEME_AES_CTR 또는 PROTECTION_SCHEME_CBC 설정해야 하며 MFSampleExtension_Encryption_CryptByteBlockMFSampleExtension_Encryption_SkipByteBlock 값을 설정해서는 안 됩니다.

MP4 기반 파일 또는 스트림의 scheme_type 필드가 'cens' 또는 'cbcs'로 설정된 경우 MFSampleExtension_Encryption_ProtectionScheme 특성은 각각 PROTECTION_SCHEME_AES_CTR 또는 PROTECTION_SCHEME_CBC 설정해야 하며 MFSampleExtension_Encryption_CryptByteBlockMFSampleExtension_Encryption_SkipByteBlock 'tenc' 상자의 값을 사용하여 설정해야 합니다.

예제

다음 예제에서는 MFSampleExtension_Encryption_ProtectionScheme 및 연결된 MFSampleExtension_Encryption_CryptByteBlock 및 MFSampleExtension_Encryption_SkipByteBlock 특성을 설정하는 방법을 보여줍니다.

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;
}

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows 10 버전 1709 [데스크톱 앱만 해당]
지원되는 최소 서버
지원되는 버전 없음
헤더
Mfidl.h