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.
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 |