Partilhar via


Leitor de código-fonte

O Leitor de Código-Fonte é uma alternativa ao uso do de Sessão de Mídia e do pipeline do Microsoft Media Foundation para processar dados de mídia.

Por que usar o leitor de código-fonte?

O Media Foundation fornece um pipeline otimizado para reprodução. O pipeline é de ponta a ponta, o que significa que ele lida com o fluxo de dados da origem (como um arquivo de vídeo) até o destino (como a exibição gráfica). No entanto, se você quiser ler ou modificar os dados à medida que eles passam pelo pipeline, deverá escrever um plug-in personalizado. Isso requer um conhecimento bastante profundo do pipeline da Media Foundation. Para determinadas tarefas, criar um novo plug-in é uma sobrecarga excessiva. O leitor de origem é 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. Um de 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 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 algum processamento de vídeo limitado: conversão de cores de YUV para RGB-32 e desentrelaçamento de software, embora essas operações não sejam recomendadas para renderização de vídeo em tempo real. A imagem seguinte ilustra este processo.

diagrama do leitor de código-fonte

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 na tela. Além disso, o leitor de origem não gerencia um relógio de apresentação, lida com problemas de temporização ou sincroniza vídeo com áudio.

Considere usar o leitor de código-fonte 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 são sensíveis ao 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 no 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 suporta gerenciamento de direitos digitais (DRM).
  • Se você se preocupa com os detalhes da estrutura do arquivo subjacente. O leitor de origem esconde esse tipo de detalhe.

Nesta secçã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 código-fonte para processar dados de mídia.
Usando o leitor de código-fonte no modo assíncrono
Este tópico descreve como usar o leitor de código-fonte no modo assíncrono.
Tutorial: Decodificação de áudio
Este tutorial mostra como usar o leitor de código-fonte para decodificar o áudio de um arquivo de mídia e gravar o áudio em um arquivo WAVE.

 

de arquitetura da Media Foundation

Guia de Programação da Media Foundation

IMFSourceReader