사용 제한 필드
참고
이 항목은 Windows 7 이상에 적용됩니다.
사용 필드 제한은 특정 기술에 대한 라이선스를 사용하는 방법을 제한하는 프로비전입니다.
Media Foundation은 MFT(Media Foundation 변환), 특히 코덱에 대한 사용 필드 제한을 적용하는 메커니즘을 제공합니다. 이 메커니즘을 사용하려면 애플리케이션이 MFT와 핸드셰이크를 수행할 때까지 MFT가 애플리케이션에서 자체 사용을 차단해야 합니다. Media Foundation은 핸드셰이크를 정의하지 않습니다. 일반적으로 일종의 암호화 교환이 포함됩니다.
등록 및 열거형
MFT에 사용 필드 제한이 있는 경우 MFT를 등록할 때 MFT_ENUM_FLAG_FIELDOFUSE 플래그를 설정합니다. 이 플래그는 다음 MFT 등록 API에 적용됩니다.
기본적으로 이 플래그에 등록된 MFT는 열거형 결과에서 제외됩니다. 사용 필드 제한이 있는 MFT를 열거하려면 MFTEnumEx를 호출하고 Flags 매개 변수에 MFT_ENUM_FLAG_FIELDOFUSE 플래그를 지정합니다. 다음 다이어그램에서는 이 프로세스를 보여 줍니다.
MFTEnum 함수는 항상 사용 필드 제한이 있는 모든 MFT를 제외합니다.
MFT 잠금 해제
사용 필드 제한이 있는 MFT를 사용하려면 다음 단계를 수행합니다.
- 애플리케이션은 IMFFieldOfUseMFTUnlock 인터페이스를 구현합니다.
- IMFFieldOfUseMFTUnlock::Unlock 메서드는 MFT의 IUnknown 인터페이스에 대한 포인터를 사용합니다.
- Unlock 메서드에서 애플리케이션은 MFT에서 정의한 메커니즘을 사용하여 필요한 핸드셰이크를 수행합니다. 이 단계는 Media Foundation API에서 정의되지 않습니다.
- Unlock 메서드가 성공하면 MFT가 자체 잠금을 해제합니다.
애플리케이션은 MFT_FIELDOFUSE_UNLOCK_Attribute 특성을 설정하여 IMFFieldOfUseMFTUnlock 포인터를 지정합니다. 애플리케이션에서 디코더 또는 인코딩 파이프라인을 만드는 방법에 따라 이 특성을 설정하는 방법에는 여러 가지가 있습니다.
API | 사용 필드 잠금을 해제하는 방법 |
---|---|
원본 판독기 | 애플리케이션에서 원본 판독 기를 사용하여 미디어 파일을 디코딩하는 경우 구성 매개 변수에서 MFT_FIELDOFUSE_UNLOCK_Attribute 특성을 설정합니다. 원본 판독기 특성을 참조하세요. |
싱크 기록기 | 애플리케이션에서 싱크 기록기를 사용하여 미디어 파일을 인코딩하는 경우 구성 매개 변수에서 MFT_FIELDOFUSE_UNLOCK_Attribute 특성을 설정합니다. 싱크 작성기 특성을 참조하세요. |
빠른 코드 변환 | 애플리케이션에서 빠른 코드 변환 기능을 사용하여 인코딩 토폴로지를 만드는 경우 IMFTranscodeProfile::SetContainerAttributes를 호출할 때 MFT_FIELDOFUSE_UNLOCK_Attribute 설정합니다. 빠른 코드 변환 기능에 대한 자세한 내용은 코드 변환 API를 참조하세요. |
토폴로지 | 토폴로지를 직접 만드는 경우 토폴로지에서 MFT_FIELDOFUSE_UNLOCK_Attribute 특성으로 설정합니다. 토폴로지 특성을 참조하세요. |
MFT 활성화 개체 | 애플리케이션이 사용할 디코더 또는 인코더를 직접 열거하는 경우 MFTEnumEx 함수에서 반환된 IMFActivate 포인터에 MFT_FIELDOFUSE_UNLOCK_Attribute 설정합니다. IMFActivate::ActivateObject를 호출하기 전에 특성을 설정하여 MFT를 만듭니다. 활성화 개체는 MFT를 만들 때 IMFFieldOfUseMFTUnlock::Unlock 를 호출합니다. |
다음 다이어그램은 MFT 활성화 개체와 IMFFieldOfUseMFTUnlock 인터페이스 간의 관계를 보여줍니다.
관련 항목