Leitor de origem

O Leitor de Origem é uma alternativa ao uso da Sessão de Mídia e do pipeline do Microsoft Media Foundation para processar dados de mídia.

Por que usar o Leitor de Origem?

O Media Foundation fornece um pipeline otimizado para reprodução. O pipeline é de ponta a ponta, o que significa que ele manipula o fluxo de dados da origem (como um arquivo de vídeo) até o destino (como a exibição de gráficos). No entanto, se você quiser ler ou modificar os dados conforme eles passam pelo pipeline, você deve escrever um plug-in personalizado. Isso requer um conhecimento bastante profundo do pipeline da Media Foundation. Para determinadas tarefas, criar um novo plug-in é muita sobrecarga. O leitor de origem foi projetado para esse tipo de situação, quando você deseja obter os dados brutos de uma fonte sem a sobrecarga de todo o pipeline.

Internamente, o leitor de origem mantém um ponteiro para uma fonte de mídia. Uma fonte de mídia é um objeto do Media Foundation que gera dados de mídia de uma fonte externa, como um arquivo de mídia ou um dispositivo de captura de vídeo. O leitor de origem gerencia todas as chamadas de método para a fonte de mídia. (Para obter mais informações sobre fontes de mídia, consulte Fontes de mídia.)

Se a fonte de mídia fornecer dados compactados, você poderá usar o leitor de origem para decodificar os dados. Nesse caso, o leitor de origem carregará o decodificador correto e gerenciará o fluxo de dados entre a fonte de mídia e o decodificador. O leitor de origem também pode executar alguns processamentos de vídeo limitados: conversão de cores de YUV para RGB-32 e desinterlacização de software, embora essas operações não sejam recomendadas para renderização de vídeo em tempo real. A imagem a seguir ilustra esse processo.

diagrama do leitor de origem

O leitor de origem não envia os dados para um destino; cabe ao aplicativo consumir os dados. Por exemplo, o leitor de origem pode ler um arquivo de vídeo, mas não renderizará o vídeo para a tela. Além disso, o leitor de origem não gerencia um relógio de apresentação, lida com problemas de tempo ou sincroniza vídeo com áudio.

Considere usar o leitor de origem quando:

  • Você deseja obter dados de um arquivo de mídia sem se preocupar com a estrutura de arquivos subjacente.
  • Você deseja obter dados de um dispositivo de captura de áudio ou vídeo.
  • Suas tarefas de processamento de dados não diferenciam o tempo ou você não precisa de um relógio de apresentação.
  • Você já tem um pipeline de mídia que não é baseado na Media Foundation e deseja incorporar as fontes de mídia do Media Foundation em seu próprio pipeline.

O leitor de origem não é recomendado nas seguintes situações:

  • Para conteúdo protegido. O leitor de origem não dá suporte ao DRM (gerenciamento de direitos digitais).
  • Se você se preocupa com os detalhes da estrutura de arquivos subjacente. O leitor de origem oculta esse tipo de detalhe.

Nesta seção

Tópico Descrição
Usando o Leitor de Origem para processar dados de mídia
Este tópico descreve como usar o Leitor de Origem para processar dados de mídia.
Usando o leitor de origem no modo assíncrono
Este tópico descreve como usar o Leitor de Origem no modo assíncrono.
Tutorial: Decodificação de áudio
Este tutorial mostra como usar o Leitor de Origem para decodificar áudio de um arquivo de mídia e gravar o áudio em um arquivo WAVE.

 

Arquitetura Media Foundation

Guia de programação do Media Foundation

IMFSourceReader