Exemplo de filtro assíncrono

Descrição

O exemplo de filtro assíncrono é um filtro de leitor de arquivo que dá suporte ao download progressivo. Este filtro de exemplo implementa as interfaces IAsyncReader e IFileSourceFilter . Ele dá suporte a arquivos MPEG, mas não a arquivos AVI.

Uso

Este exemplo inclui um pequeno aplicativo de linha de comando, Memfile.exe, que demonstra o filtro. Os argumentos de linha de comando especificam um arquivo de mídia e uma taxa de bits, em quilobytes por segundo. O aplicativo lê o arquivo na memória na taxa especificada e executa o arquivo. Para fazer isso, ele cria uma instância do filtro, adiciona o filtro ao gráfico de filtro e renderiza o pino de saída do filtro.

Na linha de comando, digite:

Taxa de bits de memfile filename

O filtro de exemplo assíncrono não oferece suporte a arquivos AVI, pois ele não pode se conectar ao filtro de Splitter AVI . O pino de saída do filtro assíncrono propõe _ o fluxo de MediaType e MEDIASUBTYPE _ nulo para o tipo de mídia. O pino de entrada no filtro de Splitter AVI não aceita MEDIASUBTYPE _ NULL e não propõe nenhum tipo próprio. Portanto, a conexão do PIN falha. O filtro assíncrono pode ser aprimorado para oferecer MEDIASUBTYPE _ AVI quando apropriado. Por exemplo, ele pode examinar o formato de arquivo ou usar a extensão de arquivo.

Baixando o exemplo

Para baixar os exemplos do SDK do DirectShow, instale a versão mais recente do SDK do Windows.

Este exemplo é instalado no seguinte caminho: exemplos de [ raiz do SDK ] \ filtros de \ multimídia do \ DirectShow \ \ assíncronos.

Amostras do DirectShow