Partilhar via


Filtro de Divisor de AVI

[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

O Filtro de Divisor de AVI é usado para reprodução de arquivos AVI. Ele aceita dados no formato AVI e os divide em seus fluxos constituintes para processamento e/ou renderização adicionais.

Rótulo Valor
Filtrar Interfaces IAMMediaContent, IBaseFilter, IPersistMediaPropertyBag
Tipos de mídia de pino de entrada MEDIATYPE_Stream, MEDIASUBTYPE_Avi
Interfaces de pino de entrada IPin, IQualityControl
Tipos de mídia de pino de saída Normalmente MEDIATYPE_Video ou MEDIATYPE_Audio. O tipo exato depende do conteúdo do arquivo, se o arquivo é compactado e qual codec foi usado.
Interfaces de pino de saída IMediaPosition, IMediaSeeking, IPin, IPropertyBag, IQualityControl
Filtrar CLSID CLSID_AviSplitter
CLSID da página de propriedades Nenhuma página de propriedades.
Executável quartz.dll
Mérito MERIT_NORMAL
Categoria de Filtro CLSID_LegacyAmFilterCategory

 

Comentários

Normalmente, esse filtro está conectado ao filtro Fonte de Arquivo Assíncrono em seu pin de entrada. Ele pode se conectar a qualquer filtro cujo pino de saída dá suporte a IAsyncReader e oferece o tipo de mídia correto ao pin de entrada do filtro divisor AVI.

Os pinos de saída no Divisor de AVI dão suporte ao método IPropertyBag::Read para ler propriedades de fluxos individuais. Atualmente, a propriedade a seguir é definida.

Propriedade Descrição
name Retorna o nome do fluxo, extraído da 'strn' parte no arquivo AVI. Se essa parte estiver ausente, o método Read retornará E_INVALIDARG.

 

O método IPropertyBag::Write retorna E_FAIL. O filtro AVI Mux dá suporte a IPropertyBag::Write para salvar propriedades de fluxo em um arquivo AVI.

O Divisor de AVI não permite que filtros downstream usem seu próprio alocador.

A duração de intercalação no arquivo determina a quantidade de memória que o Divisor de AVI alocará para processá-lo. Um arquivo intercalado em partes de um segundo exigirá muito mais memória para processar do que um arquivo cuja duração de intercalação é definida como um ou dois quadros. Em computadores modernos, isso geralmente não é um problema, a menos que você esteja executando várias instâncias do Divisor AVI simultaneamente.

Procurando

Se o arquivo contiver um fluxo de vídeo, o Divisor de AVI oferecerá suporte à busca por número de quadro. Para habilitar a busca baseada em quadros, chame IMediaSeeking::SetTimeFormat no Gerenciador de Grafo de Filtro com o valor TIME_FORMAT_FRAME.

Se o arquivo contiver um fluxo de áudio, o Divisor de AVI oferecerá suporte à busca por número de exemplo. Para habilitar a busca baseada em exemplo, chame SetTimeFormat no Gerenciador de Grafo de Filtro com o valor TIME_FORMAT_SAMPLE.

Em ambos os casos, o pino de saída desse fluxo deve ser conectado a um filtro de renderizador.

Filtros do DirectShow