IMFTransform::GetInputAvailableType-Methode (mftransform.h)
Ruft einen verfügbaren Medientyp für einen Eingabedatenstrom für diese Media Foundation-Transformation (MFT) ab.
Syntax
HRESULT GetInputAvailableType(
[in] DWORD dwInputStreamID,
[in] DWORD dwTypeIndex,
[out] IMFMediaType **ppType
);
Parameter
[in] dwInputStreamID
Eingabedatenstrombezeichner. Um die Liste der Streambezeichner abzurufen, rufen Sie IMFTransform::GetStreamIDs auf.
[in] dwTypeIndex
Index des abzurufenden Medientyps. Medientypen werden ab 0 (null) indiziert und in der ungefähren Reihenfolge der Einstellung zurückgegeben.
[out] ppType
Empfängt einen Zeiger auf die IMFMediaType-Schnittstelle .
Rückgabewert
Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Die Methode wurde erfolgreich ausgeführt. |
|
Das MFT verfügt nicht über eine Liste der verfügbaren Eingabetypen. |
|
Ungültiger Streambezeichner. |
|
Der dwTypeIndex-Parameter liegt außerhalb des Bereichs. |
|
Sie müssen die Ausgabetypen festlegen, bevor Sie die Eingabetypen festlegen. |
Hinweise
Der MFT definiert eine Liste der verfügbaren Medientypen für jeden Eingabedatenstrom und ordnet sie nach Präferenz an. Diese Methode listet die verfügbaren Medientypen für einen Eingabedatenstrom auf. Um die verfügbaren Typen aufzulisten, erhöhen Sie dwTypeIndex , bis die Methode MF_E_NO_MORE_TYPES zurückgibt.
Das Festlegen des Medientyps für einen Stream kann die verfügbaren Typen für einen anderen Stream ändern oder die Einstellungsreihenfolge ändern. Ein MFT ist jedoch nicht erforderlich, um die Liste der verfügbaren Typen dynamisch zu aktualisieren. Die einzige garantierte Möglichkeit zum Testen, ob Sie einen bestimmten Eingabetyp festlegen können, ist das Aufrufen von IMFTransform::SetInputType.
In einigen Fällen kann ein MFT erst dann eine Liste von Eingabetypen zurückgeben, wenn mindestens ein Ausgabetyp festgelegt ist. Wenn ja, gibt die Methode MF_E_TRANSFORM_TYPE_NOT_SET zurück.
Zum Implementieren dieser Methode ist kein MFT erforderlich. Die meisten MFTs sollten diese Methode jedoch implementieren, es sei denn, die unterstützten Typen sind einfach und können über die MFTGetInfo-Funktion ermittelt werden.
Wenn MFT_UNIQUE_METHOD_NAMES vor dem Einschließen von mftransform.h definiert ist, wird diese Methode in MFTGetInputAvailableType umbenannt. Weitere Informationen finden Sie unter Erstellen von DMO/MFT-Hybridobjekten.
Nach dem Festlegen des Ausgabetyps für Encoder muss GetInputAvailableType eine Liste von Eingabetypen zurückgeben, die mit dem aktuellen Ausgabetyp kompatibel sind. Dies bedeutet, dass alle Typen, die von GetInputAvailableType zurückgegeben werden, nachdem der Ausgabetyp festgelegt wurde, gültige Typen für SetInputType sein müssen.
Encoder sollten Eingabetypen ablehnen, wenn die Attribute des Eingabemedientyps und des Ausgabemedientyps nicht übereinstimmen, z. B. Auflösungseinstellung mit MF_MT_FRAME_SIZE, Einstellung des nominalen Bereichs mit MF_MT_VIDEO_NOMINAL_RANGE oder Einstellung der Bildfrequenz mit MF_MT_FRAME_SIZE
Implementierungshinweise
Wenn der MFT einen Medientyp intern speichert, sollte der MFT einen Klon des Medientyps und keinen Zeiger auf den ursprünglichen Typ zurückgeben. Andernfalls kann der Aufrufer den Typ ändern und den internen Zustand des MFT ändern.Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | mftransform.h |
Bibliothek | Mfuuid.lib |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für