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

Obtient les identificateurs de flux pour les flux d’entrée et de sortie sur cette transformation Media Foundation (MFT).

Syntaxe

HRESULT GetStreamIDs(
  [in]  DWORD dwInputIDArraySize,
  [out] DWORD *pdwInputIDs,
  [in]  DWORD dwOutputIDArraySize,
  [out] DWORD *pdwOutputIDs
);

Paramètres

[in] dwInputIDArraySize

Nombre d’éléments dans le tableau pdwInputIDs .

[out] pdwInputIDs

Pointeur vers un tableau alloué par l’appelant. La méthode remplit le tableau avec les identificateurs de flux d’entrée. La taille du tableau doit être au moins égale au nombre de flux d’entrée. Pour obtenir le nombre de flux d’entrée, appelez IMFTransform::GetStreamCount.

Si l’appelant transmet un tableau supérieur au nombre de flux d’entrée, le MFT ne doit pas écrire de valeurs dans les entrées de tableau supplémentaires.

[in] dwOutputIDArraySize

Nombre d’éléments dans le tableau pdwOutputIDs .

[out] pdwOutputIDs

Pointeur vers un tableau alloué par l’appelant. La méthode remplit le tableau avec les identificateurs de flux de sortie. La taille du tableau doit être au moins égale au nombre de flux de sortie. Pour obtenir le nombre de flux de sortie, appelez GetStreamCount.

Si l’appelant transmet un tableau supérieur au nombre de flux de sortie, le MFT ne doit pas écrire de valeurs dans les entrées de tableau supplémentaires.

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
E_NOTIMPL
Non implémenté. Consultez la section Notes.
MF_E_BUFFERTOOSMALL
L’un des tableaux ou les deux est trop petit.

Notes

Les identificateurs de flux sont nécessaires, car certains MFT peuvent ajouter ou supprimer des flux, de sorte que l’index d’un flux peut ne pas être unique. Par conséquent, les méthodes IMFTransform qui fonctionnent sur les flux acceptent des identificateurs de flux.

Cette méthode peut retourner E_NOTIMPL si les deux conditions suivantes sont remplies :

  • La transformation a un nombre fixe de flux.
  • Les flux sont numérotés consécutivement de 0 à n – 1, où n est le nombre de flux d’entrée ou de flux de sortie. En d’autres termes, le premier flux d’entrée est 0, le second est 1, et ainsi de suite; et le premier flux de sortie est 0, le second est 1, et ainsi de suite.
Cette méthode doit être implémentée si l’une des conditions suivantes est remplie :
  • Le MFT peut ajouter ou supprimer des flux de sortie.
  • Le MFT permet au client d’ajouter ou de supprimer des flux d’entrée.
  • Les identificateurs de flux ne sont pas consécutifs.
Tous les identificateurs de flux d’entrée doivent être uniques dans un MFT, et tous les identificateurs de flux de sortie doivent être uniques. Toutefois, un flux d’entrée et un flux de sortie peuvent partager le même identificateur.

Si le client ajoute un flux d’entrée, le client attribue l’identificateur, de sorte que MFT doit autoriser les identificateurs arbitraires, tant qu’ils sont uniques. Si la MFT crée un flux de sortie, la MFT affecte l’identificateur.

Par convention, si un MFT a exactement un flux d’entrée fixe et un seul flux de sortie fixe, il doit affecter l’identificateur 0 aux deux flux.

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

Spécifications

   
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