Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе представлен краткий обзор динамических административных объектов по мере их связи с Windows Media Codecs. Дополнительные сведения о объектах интеллектуального анализа данных см. в объектов мультимедиа DirectX.
DMO — это COM-объект, который преобразует данные. Вы передаете данные в него и возвращает преобразованные данные. В случае DMO кодировщика кодировщика кодировщика вы вводите несжатые данные мультимедиа и DMO предоставляет сжатые данные мультимедиа. Основное преимущество использования DMOS заключается в том, что все они реализуют один и тот же базовый интерфейс, IMediaObject, что упрощает работу с ними, так как можно использовать один и тот же объект независимо от типа выполняемого преобразования.
Так как существуют переменные, связанные с преобразованием данных, преобразование звука и видео должно учитывать широкий спектр возможных конфигураций мультимедиа. Кодеки аудио и видео в Windows Media также поддерживают ряд специальных функций, которые необходимо настроить с помощью DMO.
Как правило, сведения об переменной, необходимые для сжатия и распаковки цифровых носителей кодека, передаются одним из трех способов:
- Задайте тип входных данных в DMO, чтобы передать характеристики несжатого носителя, передаваемого в DMO кодировщика, и характеристики сжатых носителей, передаваемых в декодирования DMO.
- Задайте тип вывода в DMO, чтобы передать характеристики сжатых носителей, предоставляемых DMO кодировщика, и характеристики несжатых носителей, которые доставляются декодером DMO.
- Используя методы интерфейса IPropertyBag, настройте другие параметры, поддерживающие различные функции dmos codec в качестве свойств. IPropertyBag — это стандартный COM-интерфейс, поддерживаемый всеми динамическими операторами интеллектуального анализа данных кодека.
Кроме того, некоторые функции кодека управляются с помощью других интерфейсов, относящихся к динамическим административным ограничениям кодека. Эти интерфейсы перечислены для каждого кодека в разделе объекты Codec.
Типы входных и выходных данных зависят от входных и выходных потоков. Каждый поток представляет дискретное представление содержимого. Например, DMO кодировщика видео в Windows Media имеет один входной поток и два выходных потока. Входной поток принимает несжатые примеры видео. Первая из двух выходных потоков предоставляет сжатые образцы; другой предоставляет несжатые образцы. Отдельные образцы в одном выходном потоке представляют то же содержимое, что и соответствующие образцы в другом потоке, но каждый поток предоставляет эти образцы в другом формате.
Каждый поток (входные или выходные данные) поддерживает один или несколько типов мультимедиа. Тип носителя или формат описывается структурой DMO_MEDIA_TYPE. DMO можно запросить для типов, поддерживаемых потоком вывода, вызвав IMediaObject::GetOutputType. Этот метод возвращает допустимый (хотя в некоторых случаях частично неполный) тип вывода для этого потока. Вы можете перечислить поддерживаемые типы носителей для выходного потока, выполняя повторные вызовы к GetOutputType, добавив параметр типа с каждым вызовом. Если индекс типа, который вы передаете, выходит из границ, метод возвращает DMO_E_NO_MORE_ITEMS. Форматы входных данных можно перечислить таким же образом с помощью метода IMediaObject::GetInputType.
Типы, перечисленные DMO, являются только предпочтительными типами, однако другие типы могут поддерживаться. Вы можете проверить тип вывода, вызвав IMediaObject::SetOutputType. Используйте IMediaObject::SetInputType для проверки типа входных данных. Оба метода возвращают DMO_E_TYPE_NOT_ACCEPTED, если переданная DMO_MEDIA_TYPE структура является недопустимой. Для некоторых dmos необходимо задать тип вывода перед перечислением всех типов входных данных. Все динамические объекты интеллектуального управления аудио и видеокодека Windows Media имеют входные и выходные данные, которые имеют взаимозависимое подтверждение. То есть тип выходных данных, заданный, будет задавать критерии проверки для входного типа. Существуют также некоторые свойства, которые при установке изменяют допустимые типы входных и выходных данных. По этой причине перед перечислением типов необходимо задать все требуемые свойства в DMO.
Если вы настроили выходные и входные типы для DMO, можно начать обработку примеров. Каждый входной пример передается кодеку с помощью вызова IMediaObject::P rocessInput, и каждый выходной пример доставляется кодеком при вызове IMediaObject::P rocessOutput.
Связанные разделы
-
работа с кодека