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


Интерфейс ICodecAPI (strmif.h)

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие 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 получает текущее значение свойства кодека.
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 задает значение свойства кодека. (ICodecAPI.SetValue)
ICodecAPI::SetValueWithNotify

Метод SetValueWithNotify задает свойство кодека и возвращает список других свойств, которые были изменены в результате. (ICodecAPI.SetValueWithNotify)
ICodecAPI::UnregisterForEvent

Метод UnregisterForEvent отменяет регистрацию приложения для указанного события кодировщика. (ICodecAPI.UnregisterForEvent)

Комментарии

Этот интерфейс определяет универсальный механизм настройки свойств кодека (кодировщика или декодера). Свойство кодека — это пара "ключ-значение", где ключ — это GUID, а значение — VARIANT. Интерпретация данных VARIANT зависит от GUID свойства. Список идентификаторов GUID свойств кодека см. в разделе Свойства API кодека.

Профили кодека

Кодеки могут при необходимости хранить сведения о профиле и возможностях в системном реестре. Эти сведения позволяют приложениям запрашивать устройство во время перечисления устройств. Профили по умолчанию хранятся в следующем разделе реестра:
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"
где {...} — это GUID свойства, который приложение может сопоставить со своим пользовательским интерфейсом. В настоящее время корпорация Майкрософт рассматривает определение набора стандартных профилей.

Возможности кодеков по умолчанию хранятся в разделе HLKM\Software\Classes\CLSID< category>\Instance< Фильтрация CLSID>\Capabilities. Каждое значение имеет имя GUID, за которым следует строковое значение, содержащее числовое значение GUID. Пример:

C++
HLKM\Software\Classes\CLSID\<category>\Instance\<My DVD encoder>\Capabilities
     default "My DVD encoder"
     REG_SZ_MULTI {...}
где {...} — это GUID свойства, который приложение может сопоставить со своим пользовательским интерфейсом.

Требования

   
Минимальная версия клиента Windows XP с пакетом обновления 2 (SP2) [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header strmif.h (включая Dshow.h)

См. также раздел

Параметры декодера для выпуска Windows Media Center

API кодировщика