Интерфейс ICodecAPI (strmif.h)
[Использование функции CodecAPI с DirectShow больше не рекомендуется. Использование DirectShow было заменено MediaPlayer, IMFMediaEngineи аудио-видеозахват в Media Foundation. Эти функции оптимизированы для Windows 11 и Windows 10. Вместо DirectShowкорпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngineи аудио и видеозахват в Media Foundation. Корпорация Майкрософт предлагает, что существующий код, использующий устаревшие API, будет перезаписан для использования новых API, если это возможно.]
Наборы интерфейсов ICodecAPI и извлекают параметры в фильтре кодировщика или декодера.
Заметка
API, объявленные в strmif.h, не поддерживаются для приложений универсальной платформы Windows (UWP). Чтобы использовать ICodecAPI в приложении UWP, используйте версию, объявленную в icodecapi.h.
Наследство
Интерфейс ICodecAPI наследует от интерфейса IUnknown. ICodecAPI также имеет следующие типы элементов:
Методика
Интерфейс ICodecAPI имеет эти методы.
ICodecAPI::GetAllSettings Метод GetAllSettings получает текущие свойства кодека и записывает их в поток. (ICodecAPI.GetAllSettings) |
ICodecAPI::GetDefaultValue Метод GetDefaultValue получает значение по умолчанию свойства кодека. (ICodecAPI.GetDefaultValue) |
ICodecAPI::GetParameterRange Метод GetParameterRange получает диапазон значений для свойства кодека. (ICodecAPI.GetParameterRange) |
ICodecAPI::GetParameterValues Метод GetParameterValues получает список возможных значений для свойства кодека. (ICodecAPI.GetParameterValues) |
ICodecAPI::GetValue Метод GetValue получает текущее значение свойства codec. |
ICodecAPI::IsModifiable Метод IsModifiable запрашивает, можно ли изменить свойство кодека, учитывая текущую конфигурацию кодека. (ICodecAPI.IsModifiable) |
ICodecAPI::IsSupported Метод IsSupported запрашивает, поддерживает ли кодек заданное свойство. (ICodecAPI.IsSupported) |
ICodecAPI::RegisterForEvent Метод RegisterForEvent регистрирует приложение для получения событий из кодека. (ICodecAPI.RegisterForEvent) |
ICodecAPI::SetAllDefaults Метод SetAllDefaults сбрасывает все свойства кодека в значения по умолчанию. (ICodecAPI.SetAllDefaults) |
ICodecAPI::SetAllDefaultsWithNotify Метод SetAllDefaultsWithNotify сбрасывает все свойства кодека в значения по умолчанию и возвращает список измененных свойств. (ICodecAPI.SetAllDefaultsWithNotify) |
ICodecAPI::SetAllSettings Метод SetAllSettings считывает свойства кодека из потока и задает их в кодеке. (ICodecAPI.SetAllSettings) |
ICodecAPI::SetAllSettingsWithNotify Метод SetAllSettingsWithNotify считывает свойства кодека из потока, задает их в кодеке и возвращает список измененных свойств. (ICodecAPI.SetAllSettingsWithNotify) |
ICodecAPI::SetValue Метод SetValue задает значение свойства codec. (ICodecAPI.SetValue) |
ICodecAPI::SetValueWithNotify Метод SetValueWithNotify задает свойство в кодеке и возвращает список других свойств, которые изменились в результате. (ICodecAPI.SetValueWithNotify) |
ICodecAPI::UnregisterForEvent Метод UnregisterForEvent отменяет регистрацию приложения для указанного события кодировщика. (ICodecAPI.UnregisterForEvent) |
Замечания
Этот интерфейс определяет универсальный механизм для задания свойств кодека (кодировщика или декодера). Свойство кодека является парой "ключ-значение", где ключ является GUID, а значением является VARIANT. Интерпретация данных VARIANT зависит от GUID свойства. Список идентификаторов GUID свойств кодека см. в разделе Свойства API Codec.
Профили кодека
Кодеки могут дополнительно хранить сведения о профиле и возможностях в системном реестре. Эта информация позволяет приложениям запрашивать устройство во время перечисления устройств. Профили по умолчанию хранятся в следующем разделе реестра:HKEY_LOCAL_MACHINE Software Classes CLSID Category ProfilesКаждый профиль — это раздел реестра, строка по умолчанию которого представляет собой текстовое описание профиля. Каждое значение имеет имя GUID, за которым следует строковое значение, содержащее числовое значение GUID. Например:
C++ |
---|
HLKM\Software\Classes\CLSID\<category>\Profiles\DVD default "HQ DVD" REG_SZ {...} = "0" REG_SZ {...} = "1234" |
Возможности кодека по умолчанию хранятся в HLKM\Software\Classes\CLSID< категория>\Instance< Фильтрация CLSID>\Capabilities. Каждое значение имеет имя GUID, за которым следует строковое значение, содержащее числовое значение GUID. Например:
C++ |
---|
HLKM\Software\Classes\CLSID\<category>\Instance\<My DVD encoder>\Capabilities default "My DVD encoder" REG_SZ_MULTI {...} |
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP с пакетом обновления 2 (SP2) [классические приложения | Приложения UWP] |
минимальный поддерживаемый сервер | Windows Server 2003 R2 [классические приложения | Приложения UWP] |
целевая платформа | Виндоус |
заголовка | strmif.h (include Dshow.h) |