_MFT_OUTPUT_DATA_BUFFER_FLAGS enumeración (mftransform.h)

Define marcas para el método IMFTransform::P rocessOutput .

Syntax

typedef enum _MFT_OUTPUT_DATA_BUFFER_FLAGS {
  MFT_OUTPUT_DATA_BUFFER_INCOMPLETE = 0x1000000,
  MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE = 0x100,
  MFT_OUTPUT_DATA_BUFFER_STREAM_END = 0x200,
  MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE = 0x300
} ;

Constantes

 
MFT_OUTPUT_DATA_BUFFER_INCOMPLETE
Valor: 0x1000000
El MFT todavía puede generar la salida de esta secuencia sin recibir más entradas. Vuelva a llamar a ProcessOutput para procesar el siguiente lote de datos de entrada.
MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE
Valor: 0x100
El formato ha cambiado en esta secuencia de salida o hay un nuevo formato preferido para esta secuencia. Cuando se establece esta marca, MFT borra el tipo de medio de la secuencia. El método ProcessOutput devuelve MF_E_TRANSFORM_STREAM_CHANGE y no genera ninguna salida para ninguna secuencia. Las llamadas adicionales a IMFTransform::P rocessInput o ProcessOutput producirán un error hasta que el cliente establezca un nuevo tipo de medio.
MFT_OUTPUT_DATA_BUFFER_STREAM_END
Valor: 0x200
MFT ha quitado este flujo de salida. El flujo de salida debe tener la marca MFT_OUTPUT_STREAM_REMOVABLE. (Consulte IMFTransform::GetOutputStreamInfo).

Cuando MFT quita un flujo de salida, MFT devuelve este código de estado en la siguiente llamada a ProcessOutput después de que se haya producido el último ejemplo de salida. Cuando el MFT devuelve este código de estado, no modifica ningún ejemplo incluido en el miembro pSample de la estructura MFT_OUTPUT_DATA_BUFFER , ni asigna un nuevo ejemplo si pSample es NULL.

Una vez devuelto este código de estado, el identificador de flujo de este flujo de salida ya no es válido. El cliente ya no debe proporcionar una estructura de MFT_OUTPUT_DATA_BUFFER para esa secuencia cuando llama a ProcessOutput.

El método ProcessOutput no devuelve MF_E_TRANSFORM_STREAM_CHANGE cuando finaliza una secuencia, a menos que haya un cambio en otra secuencia que requiera este código de retorno.
MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE
Valor: 0x300
No hay ningún ejemplo listo para esta secuencia. Esta marca se puede establecer si el MFT tiene varias secuencias de salida que producen datos en momentos diferentes. Establece esta marca para cada secuencia que no está lista para generar datos. No modifica el ejemplo de salida contenido en el miembro pSample de la estructura MFT_OUTPUT_DATA_BUFFER , ni asigna un nuevo ejemplo es pSample es NULL.

Si no hay secuencias listas para generar la salida, MFT no establece esta marca. En su lugar, el método ProcessOutput devuelve MF_E_TRANSFORM_NEED_MORE_INPUT.

Comentarios

Los valores de esta enumeración no son marcas de bits, por lo que no deben combinarse con un OR bit a bit. Además, el autor de la llamada debe probar estas marcas con el operador de igualdad, no un AND bit a bit:

// Correct.
if (Buffer.dwStatus == MFT_OUTPUT_DATA_BUFFER_STREAM_END)
{
    ...
}

// Incorrect.
if ((Buffer.dwStatus & MFT_OUTPUT_DATA_BUFFER_STREAM_END) != 0)
{
    ...
}

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

Enumeraciones de Media Foundation

Transformaciones de Media Foundation