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


Интерфейс 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)

См. также