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


Настройка динамических административных объектов Codec

Этот раздел описывает процесс настройки кодеков DMO. Каждый кодек имеет определенные процедуры, но информация, общая для всех, описана здесь.

Настройка входных и выходных данных DMO

Каждый DMO поддерживает определенные типы входных и выходных данных. Поддерживаемые типы для входных и выходных данных можно получить, вызвав IMediaObject::GetInputType для входных данных и IMediaObject::GetOutputType для выходных данных. Вы можете перечислить поддерживаемые форматы, выполняя повторяющиеся вызовы любого метода, добавив индекс типа с каждым вызовом. Если индекс превышает значение последнего поддерживаемого типа, вызов возвращает DMO_E_NO_MORE_ITEMS.

Для видеокодеков для данного подтипа мультимедиа перечисляется только один тип вывода или тип входных данных. Для аудиокодеков перечисляется каждый отдельный поддерживаемый тип. Для получения дополнительной информации о поддерживаемых типах для отдельных кодеков см. разделы Работа с аудио и Работа с видео.

После настройки типов мультимедиа для входных и выходных потоков задайте их путем вызова IMediaObject::SetInputType и IMediaObject::SetOutputType соответственно. Оба этих метода возвращают DMO_E_TYPE_NOT_ACCEPTED, если указанный тип недопустим.

Настройка DMOs кодека для кодирования

Все кодеки аудио и видеокодеков Windows Media поддерживают различные функции кодирования. Эти функции обычно настраиваются, задавая свойства DMO с помощью методов интерфейса IPropertyBag. Некоторые свойства настраиваются с помощью специализированных интерфейсов кодека. Эти интерфейсы перечислены для каждого кодека в разделе Объекты кодеков.

Общий порядок операций для настройки DMO кодирования выглядит следующим образом:

  1. Настройте функции кодека по желанию с помощью методов IPropertyBag.
  2. При необходимости используйте интерфейсы DMO кодека для настройки дополнительных функций.
  3. Настройте входные и выходные типы. Порядок настройки типов зависит от отдельных кодеков. Дополнительные сведения см. в разделе Работа с аудио и работа с видео.

Настройка Codec DMO для декодирования

Декодирование проще, чем кодировка, так как поддерживаются меньше функций декодировщика.

Общий порядок операций для настройки декодирования DMO выглядит следующим образом:

  1. Настройте функции декодера по желанию с помощью методов IPropertyBag.
  2. Задайте тип входных данных, используемый для выходных данных кодировщика.
  3. Настройте тип вывода. Поддерживаемые типы выходных данных отличаются для разных входных данных.

Заметка

Важно использовать тот же тип носителя для входных данных декодера, что и для выходных данных кодировщика. Это связано с тем, что кодеки windows Media Audio и Video используют форматы мультимедиа с дополнительными данными. Эти данные добавляются в структуру, на которую указывает pbFormat член структуры DMO_MEDIA_TYPE (обычно VIDEOINFOHEADER или WAVEFORMATEX). Для некоторых типов дополнительные данные являются частью перечисленного типа выходных данных кодировщика. Другие типы требуют добавления этих данных вручную. Без данных расширенного формата нельзя декодировать сжатое содержимое.

 

Работа с кодеками DMO