Compartilhar via


enumeração _MFT_OUTPUT_STREAM_INFO_FLAGS (mftransform.h)

Descreve um fluxo de saída em uma MFT (transformação do Media Foundation).

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 exemplo de mídia (interface IMFSample ) de dados de saída do MFT contém unidades de dados completas e ininterrupta. A definição de uma unidade de dados depende do tipo de mídia: para vídeo descompactado, um quadro de vídeo; para dados compactados, um pacote compactado; para áudio descompactado, um único quadro de áudio.

Para formatos de áudio descompactados, esse sinalizador é sempre implícito. (É válido definir o sinalizador, mas não obrigatório.) Um quadro de áudio descompactado nunca deve abranger mais de um exemplo de mídia.
MFT_OUTPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER
Valor: 0x2
Cada exemplo de saída contém exatamente uma unidade de dados, conforme definido para o sinalizador MFT_OUTPUT_STREAM_WHOLE_SAMPLES.

Se esse sinalizador estiver presente, o sinalizador MFT_OUTPUT_STREAM_WHOLE_SAMPLES também deverá estar presente.

Um MFT que gera áudio descompactado não deve definir esse sinalizador. Para eficiência, ele deve gerar mais de um quadro de áudio por vez.
MFT_OUTPUT_STREAM_FIXED_SAMPLE_SIZE
Valor: 0x4
Todos os exemplos de saída têm o mesmo tamanho.
MFT_OUTPUT_STREAM_DISCARDABLE
Valor: 0x8
O MFT pode descartar os dados de saída desse fluxo de saída, se solicitado pelo cliente. Para descartar a saída, defina o sinalizador MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER no método IMFTransform::P rocessOutput .
MFT_OUTPUT_STREAM_OPTIONAL
Valor: 0x10
Esse fluxo de saída é opcional. O cliente pode desmarcar o fluxo não definindo um tipo de mídia ou definindo um tipo de mídia NULL . Quando um fluxo opcional é desmarcado, ele não produz nenhum dado de saída.
MFT_OUTPUT_STREAM_PROVIDES_SAMPLES
Valor: 0x100
O MFT fornece os exemplos de saída para esse fluxo, alocando-os internamente ou operando diretamente nos exemplos de entrada. O MFT não pode usar exemplos de saída fornecidos pelo cliente para esse fluxo.

Se esse sinalizador não estiver definido, o MFT deverá definir cbSize como um valor diferente de zero na estrutura MFT_OUTPUT_STREAM_INFO , para que o cliente possa alocar o tamanho correto do buffer. Para obter mais informações, consulte IMFTransform::GetOutputStreamInfo. Esse sinalizador não pode ser combinado com o sinalizador MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES.
MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES
Valor: 0x200
O MFT pode fornecer exemplos de saída para esse fluxo ou pode usar exemplos alocados pelo cliente. Esse sinalizador não pode ser combinado com o sinalizador MFT_OUTPUT_STREAM_PROVIDES_SAMPLES.

Se o MFT não definir esse sinalizador ou o sinalizador MFT_OUTPUT_STREAM_PROVIDES_SAMPLES, o cliente deverá alocar os exemplos para esse fluxo de saída. O MFT não fornecerá seus próprios exemplos.
MFT_OUTPUT_STREAM_LAZY_READ
Valor: 0x400
O MFT não exige que o cliente processe a saída para esse fluxo. Se o cliente continuar a enviar dados de entrada sem obter a saída desse fluxo, o MFT simplesmente descartará a entrada anterior.
MFT_OUTPUT_STREAM_REMOVABLE
Valor: 0x800
O MFT pode remover esse fluxo de saída durante o streaming. Esse sinalizador normalmente se aplica a demultiplexers, em que os dados de entrada contêm vários fluxos que podem iniciar e parar durante o streaming. Para obter mais informações, consulte IMFTransform::P rocessOutput.

Comentários

Antes que o cliente defina os tipos de mídia no MFT, o único sinalizador garantido para ser preciso é o sinalizador MFT_OUTPUT_STREAM_OPTIONAL. Para todos os outros sinalizadores, o cliente deve primeiro definir o tipo de mídia em cada fluxo não opcional.

Os sinalizadores MFT_OUTPUT_STREAM_DISCARDABLE e MFT_OUTPUT_STREAM_LAZY_READ definem comportamentos diferentes para como o MFT pode descartar dados de saída.

  • MFT_OUTPUT_STREAM_DISCARDABLE: o MFT descartará os dados de saída somente se o cliente chamar ProcessOutput com o sinalizador MFT_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER. O MFT nunca descarta dados quando o cliente chama ProcessInput.
  • MFT_OUTPUT_STREAM_LAZY_READ: se o cliente continuar a chamar ProcessInput sem coletar a saída desse fluxo, o MFT eventualmente descartará a saída. Se todos os fluxos de saída tiverem o sinalizador MFT_OUTPUT_STREAM_LAZY_READ, o MFT nunca recusará mais dados de entrada.
Se nenhum desses sinalizadores estiver definido, o MFT nunca descartará os dados de saída.

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

MFT_OUTPUT_STREAM_INFO

Enumerações do Media Foundation

Transformações do Media Foundation