Tipos de mídia completos e parciais

Este tópico descreve a diferença entre tipos de mídia completos e tipos de mídia parciais.

Tipos de mídia completos

Um tipo de mídia completo é aquele que define totalmente o formato do fluxo de mídia. Dado um tipo de mídia completo, um componente de pipeline pode analisar os dados de fluxo associados ao tipo de mídia, sem ambiguidade.

Para formatos não compactados, os tópicos a seguir definem os atributos necessários para um tipo de mídia completo:

Para fluxos compactados (ou codificados), a definição de um tipo de mídia completo é definida pelo codec. No entanto, se algum atributo de tipo não compactado for conhecido pelo fluxo compactado, esses valores deverão ser incluídos no tipo de mídia do fluxo compactado. Por exemplo, se o tamanho do quadro for conhecido, defina o atributo MF_MT_FRAME_SIZE no tipo de mídia, embora tecnicamente um fluxo compactado não tenha um tamanho de quadro.

Tipos de mídia parciais

Um tipo de mídia parcial não tem um ou mais dos atributos necessários para um tipo de mídia completo. Ao enumerar possíveis tipos de mídia, um componente do Microsoft Media Foundation pode deixar um valor não definido, para indicar que ele pode manipular qualquer valor. Por exemplo, um processador de vídeo pode deixar o atributo MF_MT_FRAME_RATE não definido, para indicar que ele pode lidar com qualquer taxa de quadros e executará uma conversão de taxa de quadros, se necessário.

Se você criar um tipo de mídia parcial, ainda deverá incluir tantas informações quanto sabe. No entanto, um tipo de mídia não deve incluir informações incertas. É melhor que as informações estejam ausentes do que erradas.

No mínimo, um tipo de mídia parcial deve incluir apenas dois atributos: MF_MT_MAJOR_TYPE e MF_MT_SUBTYPE.

Às vezes, os componentes do Media Foundation devem fornecer tipos de mídia completos:

  • As fontes de mídia devem fornecer tipos de saída completos.
  • Os decodificadores devem fornecer tipos de saída completos depois que o tipo de entrada for definido. Antes que o tipo de entrada seja definido, um decodificador pode fornecer um tipo de saída parcial.
  • Os codificadores devem fornecer tipos de entrada completos, depois que o tipo de saída for definido. Antes que o tipo de saída seja definido, um codificador pode fornecer um tipo de entrada parcial.

Tipos de mídia