Användningsbegränsningar för fält
Not
Det här avsnittet gäller för Windows 7 eller senare.
En begränsning för användningsfält är en bestämmelse som begränsar hur en licens för en viss teknik kan användas.
Media Foundation tillhandahåller en mekanism för att framtvinga användningsbegränsningar för Media Foundation-transformeringar (MFI), särskilt codecs. Den här mekanismen kräver att MFT blockerar sin egen användning av program tills programmet har utfört ett handslag med MFT. Media Foundation definierar inte handskakningen, vanligtvis skulle det innebära någon form av kryptografiskt utbyte.
Registrering och uppräkning
Om en MFT har användningsfältbegränsningar anger du flaggan MFT_ENUM_FLAG_FIELDOFUSE när du registrerar MFT. Den här flaggan gäller för följande MFT-registrerings-API:er:
Som standard undantas MFI som registrerats med den här flaggan från uppräkningsresultat. Om du vill räkna upp MMFT:er med användningsbegränsningar anropar du MFTEnumEx och anger flaggan MFT_ENUM_FLAG_FIELDOFUSE i parametern Flags. Följande diagram illustrerar den här processen.
Funktionen MFTEnum utesluter alltid alla MMFT:er som har användningsfältbegränsningar.
Låsa upp MFT
Utför följande steg för att använda en MFT med begränsningar för användningsfält:
- Programmet implementerar gränssnittet IMFFieldOfUseMFTUnlock.
- Metoden IMFFieldOfUseMFTUnlock::Unlock tar en pekare till MFT:s IUnknown-gränssnittet.
- I metoden Unlock utför programmet den nödvändiga handskakningen med vilken mekanism som helst som definieras av MFT. Det här steget definieras inte av Media Foundation API.
- Om metoden Unlock lyckas låser MFT upp sig själv.
Programmet anger IMFFieldOfUseMFTUnlock pekare genom att ange attributet MFT_FIELDOFUSE_UNLOCK_Attribute. Det finns flera olika sätt att ange det här attributet, beroende på hur programmet skapar avkodaren eller kodningspipelinen:
Application Programming Interface | Låsa upp fält –Of-Use |
---|---|
Källläsare | Om programmet använder Source Reader för att avkoda en mediefil anger du attributet MFT_FIELDOFUSE_UNLOCK_Attribute i konfigurationsparametrarna. Se källläsares attribut. |
Mottagare | Om programmet använder mottagarskrivaren för att koda en mediefil anger du attributet MFT_FIELDOFUSE_UNLOCK_Attribute i konfigurationsparametrarna. Se skrivarattribut för mottagare. |
Snabb transcode | Om programmet använder funktionen Snabb transcode för att skapa en kodningstopologi anger du MFT_FIELDOFUSE_UNLOCK_Attribute när du anropar IMFTranscodeProfile::SetContainerAttributes. Mer information om funktionen Snabb transcode finns i Transcode API. |
Topologi | Om du skapar en topologi direkt anger du MFT_FIELDOFUSE_UNLOCK_Attribute som ett attribut på topologin. Se Topologiattribut. |
MFT-aktiveringsobjekt | Om programmet direkt räknar upp de avkodare eller kodare som det ska använda anger du MFT_FIELDOFUSE_UNLOCK_Attribute på IMFAktivera pekare som returneras av funktionen MFTEnumEx. Ange attributet innan du anropar IMFActivate::ActivateObject för att skapa MFT. Aktiveringsobjektet anropar IMFFieldOfUseMFTUnlock::Unlock när MFT skapas. |
Följande diagram visar relationen mellan MFT-aktiveringsobjekt och IMFFieldOfUseMFTUnlock-gränssnittet.
Relaterade ämnen