Veld van gebruiksbeperkingen
Notitie
Dit onderwerp is van toepassing op Windows 7 of hoger.
Een beperking voor gebruiksveld is een bepaling die beperkt hoe een licentie voor een bepaalde technologie kan worden gebruikt.
Media Foundation biedt een mechanisme voor het afdwingen van beperkingen voor veldgebruik voor Media Foundation-transformaties (MMFT's), met name codecs. Dit mechanisme vereist dat de MFT zijn eigen gebruik door toepassingen blokkeert totdat de toepassing een handshake met de MFT heeft uitgevoerd. Media Foundation definieert de handshake niet. Normaal gesproken gaat het om een soort cryptografische uitwisseling.
Registratie en opsomming
Als een MFT beperkingen voor veldgebruik heeft, stelt u de vlag MFT_ENUM_FLAG_FIELDOFUSE in wanneer u de MFT registreert. Deze vlag is van toepassing op de volgende MFT-registratie-API's:
MMFT's die bij deze vlag zijn geregistreerd, worden standaard uitgesloten van opsommingsresultaten. Als u MFTEnumEx wilt opsommen met beperkingen voor veldgebruik, roept u MFTEnumEx- aan en geeft u de vlag MFT_ENUM_FLAG_FIELDOFUSE op in de parameter Vlaggen. In het volgende diagram ziet u dit proces.
De functie MFTEnum sluit altijd eventuele MFTEnum-beperkingen uit.
De MFT ontgrendelen
Voer de volgende stappen uit om een MFT met beperkingen voor gebruiksvelden te gebruiken:
- De toepassing implementeert de interface IMFFieldOfUseMFTUnlock.
- De methode IMFFieldOfUseMFTUnlock::Unlock verwijst naar de IUnknown interface van de MFT.
- In de methode Unlock voert de toepassing de vereiste handshake uit met behulp van het mechanisme dat door de MFT wordt gedefinieerd. Deze stap is niet gedefinieerd door de Media Foundation-API.
- Als de methode Unlock slaagt, ontgrendelt de MFT zichzelf.
De toepassing geeft de IMFFieldOfUseMFTUnlock aanwijzer op door het kenmerk MFT_FIELDOFUSE_UNLOCK_Attribute in te stellen. Er zijn verschillende manieren om dit kenmerk in te stellen, afhankelijk van hoe uw toepassing de decoder of coderingspijplijn maakt:
API | Veld ontgrendelen-Of-Use |
---|---|
Bronlezer | Als uw toepassing de bronlezer gebruikt om een mediabestand te decoderen, stelt u het kenmerk MFT_FIELDOFUSE_UNLOCK_Attribute in de configuratieparameters in. Zie kenmerken van de bronlezer. |
Sink Writer | Als uw toepassing de sink writer gebruikt om een mediabestand te coderen, stelt u het kenmerk MFT_FIELDOFUSE_UNLOCK_Attribute in de configuratieparameters in. Zie Sink Writer-kenmerken. |
Snelle transcode | Als uw toepassing de functie Fast Transcode gebruikt om een coderingstopologie te maken, stelt u de MFT_FIELDOFUSE_UNLOCK_Attribute in wanneer u IMFTranscodeProfile::SetContainerAttributesaanroept. Zie Transcode-API-voor meer informatie over de functie Snelle transcode. |
Topologie | Als u rechtstreeks een topologie maakt, stelt u de MFT_FIELDOFUSE_UNLOCK_Attribute in als een kenmerk in de topologie. Zie topologiekenmerken. |
MFT-activeringsobject | Als uw toepassing de decoders of encoders die deze gaat gebruiken rechtstreeks opsommen, stelt u de MFT_FIELDOFUSE_UNLOCK_Attribute in op het IMFActivate pointers die worden geretourneerd door de functie MFTEnumEx. Stel het kenmerk in voordat u IMFActivate aanroept::ActivateObject om de MFT te maken. Het activeringsobject roept IMFFieldOfUseMFTUnlock::Unlock aan wanneer de MFT wordt gemaakt. |
In het volgende diagram ziet u de relatie tussen MFT-activeringsobjecten en de interface IMFFieldOfUseMFTUnlock.
Verwante onderwerpen