Поделиться через


Полные и частичные типы носителей

В этом разделе описывается разница между полными типами мультимедиа и частичными типами носителей.

Полные типы носителей

полный тип мультимедиа — это тот, который полностью определяет формат потока мультимедиа. Учитывая полный тип носителя, компонент конвейера может анализировать данные потока, связанные с типом носителя, без неоднозначности.

Для несжатых форматов в следующих разделах определяются атрибуты, необходимые для полного типа носителя:

Для сжатых потоков (или закодированных) определение полного типа мультимедиа определяется кодеком. Однако если для сжатого потока известны какие-либо несжатые атрибуты типа, эти значения должны быть включены в тип носителя для сжатого потока. Например, если размер кадра известен, задайте атрибут MF_MT_FRAME_SIZE для типа носителя, даже если технически сжатый поток не имеет размера кадра.

Частичные типы носителей

В частичном тип мультимедиа отсутствует один или несколько атрибутов, необходимых для полного типа носителя. При перечислении возможных типов мультимедиа компонент Microsoft Media Foundation может оставить значение неустановленным, чтобы указать, что он может обрабатывать любое значение. Например, обработчик видео может оставить атрибут MF_MT_FRAME_RATE не настроен, чтобы указать, что он может обрабатывать любую частоту кадров и при необходимости будет выполнять преобразование частоты кадров.

Если вы создаете частичный тип мультимедиа, вы по-прежнему должны включать столько сведений, сколько вы знаете. Однако тип носителя не должен включать сведения, которые являются неопределенными. Лучше пропустить информацию, чем неправильно.

Как минимум, частичный тип носителя должен содержать только два атрибута: MF_MT_MAJOR_TYPE и MF_MT_SUBTYPE.

Иногда компоненты Media Foundation должны предоставлять полные типы носителей:

  • Источники мультимедиа должны предоставлять полные типы выходных данных.
  • Декодеры должны предоставлять полные типы выходных данных после установки входного типа. Перед настройкой типа входных данных декодатор может предоставить частичный выходной тип.
  • Кодировщики должны предоставлять полные типы входных данных после установки выходного типа. Перед настройкой выходного типа кодировщик может предоставить частичный входной тип.

Типы носителей