Méthode IMFTransform ::SetOutputType (mftransform.h)

Définit, teste ou efface le type de média pour un flux de sortie sur cette transformation Media Foundation (MFT).

Syntaxe

HRESULT SetOutputType(
  [in] DWORD        dwOutputStreamID,
  [in] IMFMediaType *pType,
  [in] DWORD        dwFlags
);

Paramètres

[in] dwOutputStreamID

Identificateur de flux de sortie. Pour obtenir la liste des identificateurs de flux, appelez IMFTransform ::GetStreamIDs.

[in] pType

Pointeur vers l’interface IMFMediaType ou NULL.

[in] dwFlags

Zéro ou plusieurs indicateurs de l’énumération _MFT_SET_TYPE_FLAGS .

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
S_OK
MF_E_INVALIDMEDIATYPE
La transformation ne peut pas utiliser le type de média proposé.
MF_E_INVALIDSTREAMNUMBER
Identificateur de flux non valide.
MF_E_INVALIDTYPE
Le type proposé n’est pas valide. Ce code d’erreur indique que le type de média lui-même n’est pas configuré correctement ; par exemple, il peut contenir des indicateurs mutuellement contradictoires.
MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING
Le MFT ne peut pas changer de type lors du traitement des données. Essayez de drainer ou de vider le MFT.
MF_E_TRANSFORM_TYPE_NOT_SET
Vous devez définir les types d’entrée avant de définir les types de sortie.
MF_E_UNSUPPORTED_D3D_TYPE
Le MFT n’a pas trouvé de configuration d’accélération vidéo DirectX (DXVA) appropriée.

Remarques

Cette méthode peut être utilisée pour définir, tester sans définir ou effacer le type de média :

  • Pour définir le type de média, définissez dwFlags sur zéro et définissez pType sur un pointeur non NULL qui spécifie le type de média.
  • Pour tester le type de média sans le définir, définissez dwFlags sur MFT_SET_TYPE_TEST_ONLY et définissez pType sur un pointeur non NULL qui spécifie le type de média. Si le type de média est acceptable, la méthode retourne S_OK. Sinon, elle retourne MF_E_INVALIDMEDIATYPE. Quelle que soit la valeur de retour, le type de média actuel ne change pas.
  • Pour effacer le type de média, définissez pType sur NULL.
La définition du type de média sur un flux peut modifier les types acceptables sur un autre flux.

Une MFT peut exiger que l’appelant définisse un ou plusieurs types d’entrée avant de définir le type de sortie. Si c’est le cas, la méthode retourne MF_E_TRANSFORM_TYPE_NOT_SET.

Si MFT prend en charge l’accélération vidéo DirectX (DXVA), mais ne parvient pas à trouver une configuration DXVA appropriée (par exemple, si le pilote graphique ne dispose pas des fonctionnalités appropriées), la méthode doit retourner MF_E_UNSUPPORTED_D3D_TYPE. Pour plus d’informations, consultez Prise en charge de DXVA 2.0 dans Media Foundation.

Si MFT_UNIQUE_METHOD_NAMES est défini avant d’inclure mftransform.h, cette méthode est renommée MFTSetOutputType. Consultez Création d’objets DMO/MFT hybrides.

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

IMFTransform

Transformations Media Foundation