Méthode IMFTransform ::GetInputAvailableType (mftransform.h)
Obtient un type de média disponible pour un flux d’entrée sur cette transformation Media Foundation (MFT).
Syntaxe
HRESULT GetInputAvailableType(
[in] DWORD dwInputStreamID,
[in] DWORD dwTypeIndex,
[out] IMFMediaType **ppType
);
Paramètres
[in] dwInputStreamID
Identificateur de flux d’entrée. Pour obtenir la liste des identificateurs de flux, appelez IMFTransform ::GetStreamIDs.
[in] dwTypeIndex
Index du type de média à récupérer. Les types de médias sont indexés à partir de zéro et retournés dans l’ordre de préférence approximatif.
[out] ppType
Reçoit un pointeur vers l’interface IMFMediaType .
Valeur retournée
Cette méthode retourne un code HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.
Code de retour | Description |
---|---|
|
S_OK |
|
Le MFT n’a pas de liste de types d’entrée disponibles. |
|
Identificateur de flux non valide. |
|
Le paramètre dwTypeIndex est hors plage. |
|
Vous devez définir les types de sortie avant de définir les types d’entrée. |
Remarques
Le MFT définit une liste des types de médias disponibles pour chaque flux d’entrée et les trie par préférence. Cette méthode énumère les types de médias disponibles pour un flux d’entrée. Pour énumérer les types disponibles, incrémentez dwTypeIndex jusqu’à ce que la méthode retourne MF_E_NO_MORE_TYPES.
La définition du type de média sur un flux peut modifier les types disponibles pour un autre flux ou modifier l’ordre de préférence. Toutefois, une MFT n’est pas nécessaire pour mettre à jour dynamiquement la liste des types disponibles. La seule façon garantie de tester si vous pouvez définir un type d’entrée particulier consiste à appeler IMFTransform ::SetInputType.
Dans certains cas, un MFT ne peut pas retourner une liste de types d’entrée tant qu’un ou plusieurs types de sortie n’ont pas été définis. Si c’est le cas, la méthode retourne MF_E_TRANSFORM_TYPE_NOT_SET.
Une MFT n’est pas nécessaire pour implémenter cette méthode. Toutefois, la plupart des MFT doivent implémenter cette méthode, sauf si les types pris en charge sont simples et peuvent être découverts via la fonction MFTGetInfo .
Si MFT_UNIQUE_METHOD_NAMES est défini avant d’inclure mftransform.h, cette méthode est renommée MFTGetInputAvailableType. Consultez Création d’objets DMO/MFT hybrides.
Pour les encodeurs, une fois le type de sortie défini, GetInputAvailableType doit retourner une liste de types d’entrée compatibles avec le type de sortie actuel. Cela signifie que tous les types retournés par GetInputAvailableType une fois que le type de sortie est défini doivent être des types valides pour SetInputType.
Les encodeurs doivent rejeter les types d’entrée si les attributs du type de média d’entrée et du type de média de sortie ne correspondent pas, tels que le paramètre de résolution avec MF_MT_FRAME_SIZE, le paramètre de plage nominale avec MF_MT_VIDEO_NOMINAL_RANGE ou le paramètre de fréquence d’images avec MF_MT_FRAME_SIZE
Notes d’implémentation
Si le MFT stocke un type de média en interne, le MFT doit retourner un clone du type de média, et non un pointeur vers le type d’origine. Sinon, l’appelant peut modifier le type et modifier l’état interne du MFT.Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau | applications UWP] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau | applications UWP] |
Plateforme cible | Windows |
En-tête | mftransform.h |
Bibliothèque | Mfuuid.lib |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour