_MFT_OUTPUT_STREAM_INFO_FLAGS-Enumeration (mftransform.h)

Beschreibt einen Ausgabestream für eine Media Foundation-Transformation (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
} ;

Konstanten

 
MFT_OUTPUT_STREAM_WHOLE_SAMPLES
Wert: 0x1
Jedes Medienbeispiel (IMFSample-Schnittstelle ) von Ausgabedaten aus dem MFT enthält vollständige, ungebrochene Dateneinheiten. Die Definition einer Dateneinheit hängt vom Medientyp ab: Bei unkomprimiertem Video ein Videoframe; für komprimierte Daten ein komprimiertes Paket; für unkomprimierte Audiodaten einen einzelnen Audioframe.

Bei nicht komprimierten Audioformaten wird dieses Flag immer impliziert. (Es ist gültig, das Flag festzulegen, aber nicht erforderlich.) Ein nicht komprimierter Audioframe sollte niemals mehr als ein Medienbeispiel umfassen.
MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER
Wert: 0x2
Jedes Ausgabebeispiel enthält genau eine Dateneinheit, wie für das MFT_OUTPUT_STREAM_WHOLE_SAMPLES-Flag definiert.

Wenn dieses Flag vorhanden ist, muss auch das MFT_OUTPUT_STREAM_WHOLE_SAMPLES-Flag vorhanden sein.

Ein MFT, der unkomprimiertes Audio ausgibt, sollte dieses Flag nicht festlegen. Zur Effizienz sollte mehr als ein Audioframe gleichzeitig ausgegeben werden.
MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE
Wert: 0x4
Alle Ausgabebeispiele haben die gleiche Größe.
MFT_OUTPUT_STREAM_DISCARDABLE
Wert: 0x8
Der MFT kann die Ausgabedaten aus diesem Ausgabedatenstrom verwerfen, wenn dies vom Client angefordert wird. Um die Ausgabe zu verwerfen, legen Sie das MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER-Flag in der IMFTransform::P rocessOutput-Methode fest.
MFT_OUTPUT_STREAM_OPTIONAL
Wert: 0x10
Dieser Ausgabestream ist optional. Der Client kann die Auswahl des Datenstroms aufheben, indem er keinen Medientyp festlegt oder einen NULL-Medientyp festlegt. Wenn ein optionaler Stream deaktiviert wird, erzeugt er keine Ausgabedaten.
MFT_OUTPUT_STREAM_PROVIDES_SAMPLES
Wert: 0x100
Der MFT stellt die Ausgabebeispiele für diesen Stream bereit, entweder durch interne Zuordnung oder durch direktes Arbeiten an den Eingabebeispielen. Der MFT kann keine Ausgabebeispiele verwenden, die vom Client für diesen Stream bereitgestellt werden.

Wenn dieses Flag nicht festgelegt ist, muss der MFT cbSize auf einen Wert ohne Zero in der MFT_OUTPUT_STREAM_INFO-Struktur festlegen, damit der Client die richtige Puffergröße zuweisen kann. Weitere Informationen finden Sie unter IMFTransform::GetOutputStreamInfo. Dieses Flag kann nicht mit dem MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES-Flag kombiniert werden.
MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES
Wert: 0x200
Der MFT kann entweder Ausgabebeispiele für diesen Stream bereitstellen oder Beispiele verwenden, die der Client ordnet. Dieses Flag kann nicht mit dem MFT_OUTPUT_STREAM_PROVIDES_SAMPLES-Flag kombiniert werden.

Wenn MFT dieses Flag oder das MFT_OUTPUT_STREAM_PROVIDES_SAMPLES-Flag nicht festgelegt hat, muss der Client die Beispiele für diesen Ausgabedatenstrom zuordnen. Das MFT stellt keine eigenen Beispiele zur Verfügung.
MFT_OUTPUT_STREAM_LAZY_READ
Wert: 0x400
Der MFT erfordert nicht, dass der Client die Ausgabe für diesen Stream verarbeitet. Wenn der Client weiterhin Eingabedaten sendet, ohne die Ausgabe aus diesem Stream zu erhalten, verwirft der MFT einfach die vorherige Eingabe.
MFT_OUTPUT_STREAM_REMOVABLE
Wert: 0x800
Der MFT entfernt diesen Ausgabedatenstrom möglicherweise während des Streamings. Dieses Flag gilt in der Regel für Demultiplexer, bei denen die Eingabedaten mehrere Datenströme enthalten, die während des Streamings gestartet und beendet werden können. Weitere Informationen finden Sie unter IMFTransform::P rocessOutput.

Hinweise

Bevor der Client die Medientypen für den MFT festlegt, ist das einzige Flag, das garantiert genau ist, das MFT_OUTPUT_STREAM_OPTIONAL-Flag. Für alle anderen Flags sollte der Client zuerst den Medientyp für jeden nicht optionalen Stream festlegen.

Die flags MFT_OUTPUT_STREAM_DISCARDABLE und MFT_OUTPUT_STREAM_LAZY_READ definieren unterschiedliche Verhaltensweisen, wie der MFT Ausgabedaten verwerfen kann.

  • MFT_OUTPUT_STREAM_DISCARDABLE: Der MFT verwirft Ausgabedaten nur, wenn der Client ProcessOutput mit dem MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER-Flag aufruft. Der MFT verwirft nie Daten, wenn der Client ProcessInput aufruft.
  • MFT_OUTPUT_STREAM_LAZY_READ: Wenn der Client weiterhin ProcessInput aufruft, ohne die Ausgabe aus diesem Stream zu sammeln, verwirft der MFT die Ausgabe schließlich. Wenn alle Ausgabedatenströme über das Flag MFT_OUTPUT_STREAM_LAZY_READ verfügen, lehnt der MFT nie weitere Eingabedaten ab.
Wenn keines dieser Flags festgelegt ist, verwirft der MFT niemals Ausgabedaten.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Kopfzeile mftransform.h

Weitere Informationen

MFT_OUTPUT_STREAM_INFO

Media Foundation-Enumerationen

Media Foundation-Transformationen