Share via


enumeração _MFT_OUTPUT_DATA_BUFFER_FLAGS (mftransform.h)

Define sinalizadores para o 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
O MFT ainda pode gerar saída desse fluxo sem receber mais nenhuma entrada. Chame ProcessOutput novamente para processar o próximo lote de dados de entrada.
MFT_OUTPUT_DATA_BUFFER_FORMAT_CHANGE
Valor: 0x100
O formato foi alterado nesse fluxo de saída ou há um novo formato preferencial para esse fluxo. Quando esse sinalizador é definido, o MFT limpa o tipo de mídia do fluxo. O método ProcessOutput retorna MF_E_TRANSFORM_STREAM_CHANGE e não gera nenhuma saída para nenhum fluxo. Outras chamadas para IMFTransform::P rocessInput ou ProcessOutput falharão até que o cliente defina um novo tipo de mídia.
MFT_OUTPUT_DATA_BUFFER_STREAM_END
Valor: 0x200
O MFT removeu esse fluxo de saída. O fluxo de saída deve ter o sinalizador MFT_OUTPUT_STREAM_REMOVABLE. (Consulte IMFTransform::GetOutputStreamInfo.)

Quando o MFT remove um fluxo de saída, o MFT retorna esse código status na próxima chamada para ProcessOutput após a última amostra de saída ter sido produzida. Quando o MFT retorna esse código status, ele não modifica nenhuma amostra contida no membro pSample da estrutura MFT_OUTPUT_DATA_BUFFER, nem aloca um novo exemplo se pSample for NULL.

Depois que esse código status é retornado, o identificador de fluxo para esse fluxo de saída não é mais válido. O cliente não deve mais fornecer uma estrutura MFT_OUTPUT_DATA_BUFFER para esse fluxo quando chama ProcessOutput.

O método ProcessOutput não retorna MF_E_TRANSFORM_STREAM_CHANGE quando um fluxo termina, a menos que haja uma alteração em outro fluxo que exija esse código de retorno.
MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE
Valor: 0x300
Não há nenhum exemplo pronto para este fluxo. Esse sinalizador poderá ser definido se o MFT tiver vários fluxos de saída que produzem dados em momentos diferentes. Ele define esse sinalizador para cada fluxo que não está pronto para produzir dados. Ele não modifica o exemplo de saída contido no membro pSample da estrutura MFT_OUTPUT_DATA_BUFFER , nem aloca um novo exemplo é que pSample é NULL.

Se nenhum fluxo estiver pronto para produzir saída, o MFT não definirá esse sinalizador. Em vez disso, o método ProcessOutput retorna MF_E_TRANSFORM_NEED_MORE_INPUT.

Comentários

Os valores nessa enumeração não são sinalizadores de bits, portanto, eles não devem ser combinados com um OR bit a bit. Além disso, o chamador deve testar esses sinalizadores com o operador de igualdade, não um 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 com suporte Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Cabeçalho mftransform.h

Confira também

Enumerações do Media Foundation

Transformações do Media Foundation