Partilhar via


Configurando DMOs codec

Este tópico descreve o processo de configuração dos DMOs codec. Cada codec tem procedimentos específicos, mas as informações comuns a todos são descritas aqui.

Configurando entradas e saídas de DMO

Cada DMO dá suporte a tipos de entrada e saída específicos. Você pode recuperar tipos com suporte para entradas e saídas chamando IMediaObject::GetInputType para entradas e IMediaObject::GetOutputType para saídas. Você pode enumerar os formatos com suporte fazendo chamadas repetidas para qualquer método, incrementando o índice de tipo com cada chamada. Quando o índice excede o do tipo final com suporte, a chamada retorna DMO_E_NO_MORE_ITEMS.

Para os codecs de vídeo, apenas um tipo de saída ou tipo de entrada é enumerado para um determinado subtipo de mídia. Para os codecs de áudio, cada tipo com suporte individual é enumerado. Para obter mais informações sobre tipos com suporte para codecs individuais, consulte Trabalhando com áudio e trabalhando com vídeo.

Depois de configurar os tipos de mídia para os fluxos de entrada e saída, defina-os chamando IMediaObject::SetInputType e IMediaObject::SetOutputType , respectivamente. Ambos os métodos retornarão DMO_E_TYPE_NOT_ACCEPTED se o tipo especificado for inválido.

Configurando os DMOs codec para codificação

Todos os codecs de Áudio e Vídeo do Windows Media dão suporte a uma variedade de recursos de codificação. Esses recursos geralmente são configurados definindo propriedades no DMO usando os métodos da interface IPropertyBag . Algumas propriedades são configuradas usando interfaces codec especializadas. Essas interfaces são listadas para cada codec na seção Objetos Codec.

A ordem geral das operações para configurar um DMO de codificação é a seguinte:

  1. Configure os recursos de codec conforme desejado usando os métodos de IPropertyBag.
  2. Use as interfaces DMO do codec para configurar recursos adicionais, se necessário.
  3. Configure os tipos de entrada e saída. A ordem na qual os tipos devem ser configurados varia para codecs individuais. Para obter mais informações, consulte Trabalhando com áudio e trabalhando com vídeo.

Configurando os DMOs codec para decodificação

A decodificação é mais simples do que a codificação, pois há suporte para menos recursos de decodificador.

A ordem geral das operações para configurar um DMO de decodificação é a seguinte:

  1. Configure os recursos do decodificador conforme desejado usando os métodos de IPropertyBag.
  2. Defina o tipo de entrada como o tipo usado para a saída do codificador.
  3. Configure o tipo de saída. Os tipos de saída com suporte são diferentes para entradas diferentes.

Observação

É importante usar o mesmo tipo de mídia para a entrada do decodificador usada para a saída do codificador. Isso ocorre porque os codecs de Áudio e Vídeo do Windows Media usam formatos de mídia com dados extras. Esses dados são acrescentados à estrutura apontada pelo membro pbFormat da estrutura DMO_MEDIA_TYPE (geralmente VIDEOINFOHEADER ou WAVEFORMATEX). Para alguns tipos, os dados extras fazem parte do tipo de saída do codificador enumerado. Outros tipos exigem que você acrescente esses dados manualmente. Sem os dados de formato estendido, você não pode decodificar o conteúdo compactado.

 

Trabalhando com DMOs codec