Compartir a través de


enumeración _MFT_OUTPUT_STREAM_INFO_FLAGS (mftransform.h)

Describe un flujo de salida en una transformación de 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
Valor: 0x1
Cada muestra de medios (interfaz IMFSample ) de los datos de salida del MFT contiene unidades de datos completas y sin desbloquear. La definición de una unidad de datos depende del tipo de medio: Para vídeo sin comprimir, un fotograma de vídeo; para los datos comprimidos, un paquete comprimido; para audio sin comprimir, un solo fotograma de audio.

En el caso de los formatos de audio sin comprimir, esta marca siempre está implícita. (Es válido establecer la marca, pero no es necesaria). Un fotograma de audio sin comprimir nunca debe abarcar más de una muestra multimedia.
MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER
Valor: 0x2
Cada ejemplo de salida contiene exactamente una unidad de datos, tal como se define para la marca MFT_OUTPUT_STREAM_WHOLE_SAMPLES.

Si esta marca está presente, la marca MFT_OUTPUT_STREAM_WHOLE_SAMPLES también debe estar presente.

Un MFT que genera audio sin comprimir no debe establecer esta marca. Para mejorar la eficacia, debe generar más de un fotograma de audio a la vez.
MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE
Valor: 0x4
Todas las muestras de salida tienen el mismo tamaño.
MFT_OUTPUT_STREAM_DISCARDABLE
Valor: 0x8
MFT puede descartar los datos de salida de este flujo de salida, si lo solicita el cliente. Para descartar la salida, establezca la marca MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER en el método IMFTransform::P rocessOutput .
MFT_OUTPUT_STREAM_OPTIONAL
Valor: 0x10
Este flujo de salida es opcional. El cliente puede anular la selección de la secuencia estableciendo un tipo de medio o estableciendo un tipo de medio NULL . Cuando se deselecciona una secuencia opcional, no genera ningún dato de salida.
MFT_OUTPUT_STREAM_PROVIDES_SAMPLES
Valor: 0x100
MFT proporciona los ejemplos de salida de esta secuencia, ya sea asignandolos internamente o trabajando directamente en los ejemplos de entrada. MFT no puede usar ejemplos de salida proporcionados por el cliente para esta secuencia.

Si no se establece esta marca, MFT debe establecer cbSize en un valor distinto de cero en la estructura MFT_OUTPUT_STREAM_INFO , para que el cliente pueda asignar el tamaño de búfer correcto. Para obtener más información, vea IMFTransform::GetOutputStreamInfo. Esta marca no se puede combinar con la marca MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES.
MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES
Valor: 0x200
MFT puede proporcionar ejemplos de salida para esta secuencia o puede usar ejemplos que el cliente asigna. Esta marca no se puede combinar con la marca MFT_OUTPUT_STREAM_PROVIDES_SAMPLES.

Si el MFT no establece esta marca o la marca MFT_OUTPUT_STREAM_PROVIDES_SAMPLES, el cliente debe asignar los ejemplos para este flujo de salida. El MFT no proporcionará sus propios ejemplos.
MFT_OUTPUT_STREAM_LAZY_READ
Valor: 0x400
El MFT no requiere que el cliente procese la salida de esta secuencia. Si el cliente sigue enviando datos de entrada sin obtener la salida de esta secuencia, MFT simplemente descarta la entrada anterior.
MFT_OUTPUT_STREAM_REMOVABLE
Valor: 0x800
El MFT podría quitar este flujo de salida durante el streaming. Esta marca se aplica normalmente a demultiplexers, donde los datos de entrada contienen varias secuencias que pueden iniciarse y detenerse durante el streaming. Para obtener más información, vea IMFTransform::P rocessOutput.

Comentarios

Antes de que el cliente establezca los tipos de medios en MFT, la única marca garantizada es la marca MFT_OUTPUT_STREAM_OPTIONAL. Para todas las demás marcas, el cliente debe establecer primero el tipo de medio en cada secuencia no opcional.

Las marcas MFT_OUTPUT_STREAM_DISCARDABLE y MFT_OUTPUT_STREAM_LAZY_READ definen diferentes comportamientos para cómo el MFT puede descartar los datos de salida.

  • MFT_OUTPUT_STREAM_DISCARDABLE: MFT descarta los datos de salida solo si el cliente llama a ProcessOutput con la marca MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER. El MFT nunca descarta los datos cuando el cliente llama a ProcessInput.
  • MFT_OUTPUT_STREAM_LAZY_READ: si el cliente sigue llamando a ProcessInput sin recopilar la salida de esta secuencia, el MFT finalmente descarta la salida. Si todos los flujos de salida tienen la marca MFT_OUTPUT_STREAM_LAZY_READ, MFT nunca rechaza más datos de entrada.
Si no se establece ninguna de estas marcas, MFT nunca descarta los datos de salida.

Requisitos

   
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Encabezado mftransform.h

Consulte también

MFT_OUTPUT_STREAM_INFO

Enumeraciones de Media Foundation

Transformaciones de Media Foundation