MFTRegister-Funktion (mfapi.h)

Fügt der Registrierung Informationen zu einer Media Foundation-Transformation (MFT) hinzu.

Anwendungen können den MFT auflisten, indem sie die Funktion MFTEnum oder MFTEnumEx aufrufen.

Syntax

HRESULT MFTRegister(
  [in] CLSID                  clsidMFT,
  [in] GUID                   guidCategory,
  [in] LPWSTR                 pszName,
  [in] UINT32                 Flags,
  [in] UINT32                 cInputTypes,
  [in] MFT_REGISTER_TYPE_INFO *pInputTypes,
  [in] UINT32                 cOutputTypes,
  [in] MFT_REGISTER_TYPE_INFO *pOutputTypes,
  [in] IMFAttributes          *pAttributes
);

Parameter

[in] clsidMFT

Die CLSID des MFT. Das MFT muss auch als COM-Objekt mit derselben CLSID registriert werden.

[in] guidCategory

GUID, die die Kategorie des MFT angibt. Eine Liste der MFT-Kategorien finden Sie unter MFT_CATEGORY.

[in] pszName

Breitzeichenzeichenfolge, die den Anzeigenamen des MFT enthält.

[in] Flags

Bitweise OR mit 0 oder mehr der folgenden Flags aus der _MFT_ENUM_FLAG-Enumeration :

Wert Bedeutung
MFT_ENUM_FLAG_ASYNCMFT
Die MFT führt eine asynchrone Verarbeitung in Software durch. Weitere Informationen finden Sie unter Asynchrone MFTs. Dieses Flag gilt nicht für Hardwaretransformationen.

Erfordert Windows 7.

MFT_ENUM_FLAG_FIELDOFUSE
Die Anwendung muss die MFT entsperren, um sie verwenden zu können. Siehe IMFFieldOfUseMFTUnlock.

Erfordert Windows 7.

MFT_ENUM_FLAG_HARDWARE
Der MFT führt hardwarebasierte Datenverarbeitung durch, wobei entweder der AVStream-Treiber oder ein GPU-basiertes Proxy-MFT verwendet wird. MFTs in dieser Kategorie verarbeiten Daten immer asynchron. Weitere Informationen finden Sie unter Hardware-MFTs.
Hinweis Dieses Flag gilt für Videocodecs und Videoprozessoren, die ihre Arbeit vollständig in Hardware ausführen. Sie gilt nicht für Softwaredecoder, die DirectX Video Acceleration verwenden, um die Decodierung zu unterstützen.
 
Erfordert Windows 7.
MFT_ENUM_FLAG_SYNCMFT
Die MFT führt synchrone Verarbeitung in Software durch. Dieses Flag gilt nicht für Hardwaretransformationen.
MFT_ENUM_FLAG_TRANSCODE_ONLY
Der MFT ist für die Transcodierung optimiert und sollte nicht für die Wiedergabe verwendet werden.

Erfordert Windows 7.

 

Das Festlegen von Flags auf 0 entspricht dem Festlegen des MFT_ENUM_FLAG_SYNCMFT Flags. Das Standardverarbeitungsmodell für MFTs ist die synchrone Verarbeitung.

Vor Windows 7 war der Flags-Parameter reserviert.

[in] cInputTypes

Anzahl der Elemente im pInputTypes-Array .

[in] pInputTypes

Zeiger auf ein Array von MFT_REGISTER_TYPE_INFO Strukturen. Jedes Element des Arrays gibt ein Eingabeformat an, das vom MFT unterstützt wird. Dieser Parameter kann NULL sein.

Dieser Parameter kann NULL sein. Wenn der Parameter jedoch NULL ist, wird der MFT nur aufgelistet, wenn eine Anwendung NULL für den gewünschten Eingabetyp angibt.

[in] cOutputTypes

Anzahl der Elemente im pOutputTypes-Array .

[in] pOutputTypes

Zeiger auf ein Array von MFT_REGISTER_TYPE_INFO Strukturen. Jedes Element des Arrays definiert ein Ausgabeformat, das vom MFT unterstützt wird.

Dieser Parameter kann NULL sein. Wenn der Parameter jedoch NULL ist, wird der MFT nur aufgelistet, wenn eine Anwendung NULL für den gewünschten Ausgabetyp angibt.

[in] pAttributes

Zeiger auf die IMFAttributes-Schnittstelle eines Attributspeichers , der zusätzliche Registrierungsinformationen enthält. Dieser Parameter kann NULL sein. Wenn der Parameter nicht NULL ist, werden die Attribute als Bytearray in die Registrierung geschrieben. Sie können die Attribute mithilfe der MFTGetInfo-Funktion abrufen.

Für diesen Parameter wird das folgende Attribut definiert:

Wert Bedeutung
MFT_CODEC_MERIT_Attribute
Enthält den Wert eines Hardwarecodecs. Weitere Informationen finden Sie unter Codec Merit.

Rückgabewert

Wenn diese Funktion erfolgreich ist, gibt sie S_OK zurück. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Hinweise

Die von dieser Funktion erstellten Registrierungseinträge werden von den folgenden Funktionen gelesen:

Funktion BESCHREIBUNG
MFTEnum Listet MFTs nach Medientyp und Kategorie auf.
MFTEnumEx Erweiterte Version von MFTEnum.
MFTGetInfo Sucht eine MFT nach CLSID und ruft die Registrierungsinformationen ab.
 

Diese Funktion registriert die CLSID des MFT nicht für die Funktionen CoCreateInstance oder CoGetClassObject .

Um die Einträge aus der Registrierung zu entfernen, rufen Sie MFTUnregister auf. Wenn Sie einen MFT aus dem System entfernen, sollten Sie immer MFTUnregister aufrufen.

Die in den Parametern pInputTypes und pOutputTypes angegebenen Formate sollen Anwendungen bei der Suche nach MFTs nach Format unterstützen. Anwendungen können die Funktionen MFTEnum oder MFTEnumEx verwenden, um MFTs aufzulisten, die einem bestimmten Satz von Formaten entsprechen.

Es wird empfohlen, mindestens einen Eingabetyp in pInputTypes und einen Ausgabetyp im pOutputTypes-Parameter anzugeben. Andernfalls kann der MFT in der Enumeration übersprungen werden.

Unter 64-Bit-Windows registriert die 32-Bit-Version dieser Funktion den MFT im 32-Bit-Knoten der Registrierung. Weitere Informationen finden Sie unter 32-Bit- und 64-Bit-Anwendungsdaten in der Registrierung.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile mfapi.h
Bibliothek Mfplat.lib
DLL Mfplat.dll

Weitere Informationen

MFTEnumEx

Media Foundation-Funktionen

Media Foundation-Transformationen

_MFT_ENUM_FLAG