Partager via


énumération _MFT_OUTPUT_STREAM_INFO_FLAGS (mftransform.h)

Décrit un flux de sortie sur une transformation Media Foundation (MFT).

Syntax

typedef enum _MFT_OUTPUT_STREAM_INFO_FLAGS {
  MFT_OUTPUT_STREAM_WHOLE_SAMPLES = 0x1,
  MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER = 0x2,
  MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE = 0x4,
  MFT_OUTPUT_STREAM_DISCARDABLE = 0x8,
  MFT_OUTPUT_STREAM_OPTIONAL = 0x10,
  MFT_OUTPUT_STREAM_PROVIDES_SAMPLES = 0x100,
  MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES = 0x200,
  MFT_OUTPUT_STREAM_LAZY_READ = 0x400,
  MFT_OUTPUT_STREAM_REMOVABLE = 0x800
} ;

Constantes

 
MFT_OUTPUT_STREAM_WHOLE_SAMPLES
Valeur : 0x1
Chaque exemple de média (interface IMFSample ) de données de sortie du MFT contient des unités de données complètes et non ininterrompues. La définition d’une unité de données dépend du type de média : Pour une vidéo non compressée, une image vidéo ; pour les données compressées, un paquet compressé ; pour l’audio non compressé, une trame audio unique.

Pour les formats audio non compressés, cet indicateur est toujours implicite. (Il est valide pour définir l’indicateur, mais pas obligatoire.) Une image audio non compressée ne doit jamais s’étendre sur plusieurs exemples de média.
MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER
Valeur : 0x2
Chaque exemple de sortie contient exactement une unité de données, comme défini pour l’indicateur MFT_OUTPUT_STREAM_WHOLE_SAMPLES.

Si cet indicateur est présent, l’indicateur MFT_OUTPUT_STREAM_WHOLE_SAMPLES doit également être présent.

Un MFT qui génère de l’audio non compressé ne doit pas définir cet indicateur. Pour plus d’efficacité, il doit générer plusieurs images audio à la fois.
MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE
Valeur : 0x4
Tous les exemples de sortie ont la même taille.
MFT_OUTPUT_STREAM_DISCARDABLE
Valeur : 0x8
Le MFT peut ignorer les données de sortie de ce flux de sortie, si le client le demande. Pour ignorer la sortie, définissez l’indicateur MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER dans la méthode IMFTransform::P rocessOutput .
MFT_OUTPUT_STREAM_OPTIONAL
Valeur : 0x10
Ce flux de sortie est facultatif. Le client peut désélectionner le flux en ne définissant pas de type de média ou en définissant un type de média NULL . Lorsqu’un flux facultatif est désélectionné, il ne produit aucune donnée de sortie.
MFT_OUTPUT_STREAM_PROVIDES_SAMPLES
Valeur : 0x100
Le MFT fournit les exemples de sortie pour ce flux, soit en les allouant en interne, soit en fonctionnant directement sur les exemples d’entrée. Le MFT ne peut pas utiliser les exemples de sortie fournis par le client pour ce flux.

Si cet indicateur n’est pas défini, MFT doit définir cbSize sur une valeur différente de zéro dans la structure MFT_OUTPUT_STREAM_INFO , afin que le client puisse allouer la taille de mémoire tampon appropriée. Pour plus d’informations, consultez IMFTransform::GetOutputStreamInfo. Cet indicateur ne peut pas être combiné avec l’indicateur MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES.
MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES
Valeur : 0x200
Le MFT peut fournir des exemples de sortie pour ce flux ou utiliser des exemples que le client alloue. Cet indicateur ne peut pas être combiné avec l’indicateur MFT_OUTPUT_STREAM_PROVIDES_SAMPLES.

Si MFT ne définit pas cet indicateur ou l’indicateur MFT_OUTPUT_STREAM_PROVIDES_SAMPLES, le client doit allouer les exemples pour ce flux de sortie. Le MFT ne fournira pas ses propres échantillons.
MFT_OUTPUT_STREAM_LAZY_READ
Valeur : 0x400
Le MFT n’exige pas que le client traite la sortie de ce flux. Si le client continue d’envoyer des données d’entrée sans obtenir la sortie de ce flux, MFT ignore simplement l’entrée précédente.
MFT_OUTPUT_STREAM_REMOVABLE
Valeur : 0x800
Le MFT peut supprimer ce flux de sortie pendant la diffusion en continu. Cet indicateur s’applique généralement aux démultiplexeurs, où les données d’entrée contiennent plusieurs flux qui peuvent démarrer et s’arrêter pendant la diffusion en continu. Pour plus d’informations, consultez IMFTransform::P rocessOutput.

Notes

Avant que le client ne définisse les types de média sur le MFT, le seul indicateur garanti est l’indicateur MFT_OUTPUT_STREAM_OPTIONAL. Pour tous les autres indicateurs, le client doit d’abord définir le type de média sur chaque flux non facultatif.

Les indicateurs MFT_OUTPUT_STREAM_DISCARDABLE et MFT_OUTPUT_STREAM_LAZY_READ définissent différents comportements pour la façon dont le MFT peut ignorer les données de sortie.

  • MFT_OUTPUT_STREAM_DISCARDABLE : le MFT ignore les données de sortie uniquement si le client appelle ProcessOutput avec l’indicateur MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER. Le MFT n’ignore jamais les données lorsque le client appelle ProcessInput.
  • MFT_OUTPUT_STREAM_LAZY_READ : si le client continue d’appeler ProcessInput sans collecter la sortie de ce flux, le MFT ignore finalement la sortie. Si tous les flux de sortie ont l’indicateur MFT_OUTPUT_STREAM_LAZY_READ, le MFT ne refuse jamais plus de données d’entrée.
Si aucun de ces indicateurs n’est défini, le MFT n’ignore jamais les données de sortie.

Configuration requise

   
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]
En-tête mftransform.h

Voir aussi

MFT_OUTPUT_STREAM_INFO

Énumérations Media Foundation

Transformations Media Foundation