é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.
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 |