KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY
Идентификатор свойства KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY , определенный в KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY , используется для получения возможностей каждого кадра от драйвера. Это только элемент управления GET; драйвер должен завершиться сбоем всех вызовов SET.
Сводка использования
Чтобы запросить возможность настройки каждого кадра с помощью драйвера, элемент управления свойством KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY отправляется драйверу вместе с буфером данных. В вызове GET драйвер заполняет полезные данные возможности параметра кадра в буфере данных, предоставленном с помощью макета формата, указанного ниже.
Заголовок возможности (KSCAMERA_PERFRAMESETTING_CAP_HEADER)
Заголовок элемента (KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER)
Заголовок элемента (KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER)
Полезные данные элемента (KSPROPERTY_STEPPING_LONG или KSPROPERTY_STEPPING_LONGLONG)
Полезные данные возможности должны начинаться с заголовка возможности. Каждый элемент возможностей должен начинаться с заголовка элемента. Если элемент возможности содержит полезные данные, за заголовком элемента должны следовать соответствующие полезные данные.
В вызове GET сначала драйверу отправляется буфер нулевой длины, чтобы узнать требуемый размер буфера данных для хранения всех полезных данных возможностей. В ответ на вызов драйвер должен вернуть STATUS_BUFFER_OVERFLOW с требуемым размером буфера возможностей, который должен быть по крайней мере размером KSCAMERA_PERFRAMESETTING_CAP_HEADER.
Ниже приведены описания полей KSCAMERA_PERFRAMESETTING_CAP_HEADER в контексте типов элементов, определенных в перечислении KSCAMERA_PERFRAMESETTING_ITEM_TYPE . Поле полезных данных представляет структуры полезных данных элемента после структуры KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER .
Элемент времени экспозиции
Размер
Это размер структуры KSCAMERA_PERFRAMESETTING_CAP_HEADER + размер структуры KSPROPERTY_STEPPING_LONGLONG , если поддерживается ручной режим.
Тип
Это должно быть KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_TIME.
Flags
Содержит доступные флаги. Это поле должно содержать флаги, доступные с помощью битового или флагов, определенных в ksmedia.h.
#define KSCAMERA_PERFRAMESETTING_AUTO 0x0000000100000000
#define KSCAMERA_PERFRAMESETTING_MANUAL 0x0000000200000000
Payload
Если драйвер поддерживает ручной режим, в KSPROPERTY_STEPPING_LONGLONG необходимо указать полезные данные диапазона. Bounds.SignedMinimum\SignedMaxmum и KSPROPERTY_STEPPING_LONGLONG. SteppingDelta
Элемент Flash
Размер
Это размер структуры KSCAMERA_PERFRAMESETTING_CAP_HEADER .
Тип
Это должно быть KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_FLASH
Flags
Содержит доступные флаги. Это поле должно содержать флаги, доступные с помощью битового ИЛИ флагов FLASH, определенных ниже в ksmedia.h.
#define KSCAMERA_EXTENDEDPROP_FLASH_OFF 0x0000000000000000
#define KSCAMERA_EXTENDEDPROP_FLASH_ON 0x0000000000000001
#define KSCAMERA_EXTENDEDPROP_FLASH_ON_ADJUSTABLEPOWER 0x0000000000000002
#define KSCAMERA_EXTENDEDPROP_FLASH_AUTO 0x0000000000000004
#define KSCAMERA_EXTENDEDPROP_FLASH_AUTO_ADJUSTABLEPOWER 0x0000000000000008
#define KSCAMERA_EXTENDEDPROP_FLASH_REDEYEREDUCTION 0x0000000000000010
Payload
У элемента флэш-памяти нет полезных данных. Если в флагах указано KSCAMERA_EXTENDEDPROP_FLASH_ON_ADJUSTABLEPOWER или KSCAMERA_EXTENDEDPROP_FLASH_AUTO_ADJUSTABLEPOWER, параметр питания находится в диапазоне от 0 до 100.
Элемент компенсации экспозиции
Размер
Это размер структуры KSCAMERA_PERFRAMESETTING_CAP_HEADER + размер структуры KSPROPERTY_STEPPING_LONG , если шаги поддерживаются.
Тип
Это должно быть KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_COMPENSATION
Flags
Содержит доступные флаги. Это поле должно содержать флаги, доступные путем выполнения битового или флага EVCOMP, определенного ниже в ksmedia.h, или флага AUTO, определенного ниже в ksmedia_phone.h.
#define KSCAMERA_PERFRAMESETTING_AUTO 0x0000000100000000
#define KSCAMERA_EXTENDEDPROP_EVCOMP_SIXTHSTEP 0x0000000000000001
#define KSCAMERA_EXTENDEDPROP_EVCOMP_QUARTERSTEP 0x0000000000000002
#define KSCAMERA_EXTENDEDPROP_EVCOMP_THIRDSTEP 0x0000000000000004
#define KSCAMERA_EXTENDEDPROP_EVCOMP_HALFSTEP 0x0000000000000008
#define KSCAMERA_EXTENDEDPROP_EVCOMP_FULLSTEP 0x0000000000000010
Payload
Если драйвер поддерживает только автоматический режим, полезные данные не включаются. В противном случае полезные данные диапазона должны быть указаны в структуре KSPROPERTY_STEPPING_LONG . Минимальное и максимальное значение компенсации EV являются абсолютными значениями компенсации EV и определяются на основе KSPROPERTY_STEPPING_LONG. Bounds.SignedMinimum и KSPROPERTY_STEPPING_LONG. Bounds.SignedMaximum. Шаг компенсации ev определяется размером шага самого низкого флага шага EVCOMP, соответствующего значению float (например, 1/6 для KSCAMERA_EXTENDEDPROP_EVCOMP_SIXTHSTEP).
Элемент скорости ISO
Размер
Это размер структуры KSCAMERA_PERFRAMESETTING_CAP_HEADER + размер структуры KSPROPERTY_STEPPING_LONG , если поддерживается ручной режим.
Тип
Это должно быть KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_ISO
Flags
Это поле содержит доступные флаги. Это поле должно содержать флаги, доступные с помощью битового ИЛИ флагов ISO, определенных ниже в ksmedia.h и ksmedia_phone.h. Если поддерживается ISO для каждого кадра, драйвер должен поддерживать по крайней мере одну из следующих возможностей, ISO_AUTO и ISO_MANUAL, в которых ISO_AUTO является обязательным. Если объявляется ISO_MANUAL, драйвер должен дополнительно объявить поддерживаемую скорость ISO min\max\step в KSPROPERTY_STEPPING_LONG. ISO_MANUAL должны поддерживаться, если требуется ручной ISO.
#define KSCAMERA_EXTENDEDPROP_ISO_MANUAL 0x0080000000000000
#define KSCAMERA_EXTENDEDPROP_ISO_AUTO 0x0000000000000001
Payload
Если драйвер поддерживает только автоматический режим, полезные данные не включаются. В противном случае полезные данные диапазона должны быть указаны в структуре KSPROPERTY_STEPPING_LONG . Минимальные, максимальные и шаговые значения скоростей ISO определяются на основе KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMinimum, KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMaximum и KSPROPERTY_STEPPING_LONG. Bounds.SteppingDelta. Драйверы, поддерживающие iso с целым числом вручную, должны объявлять только ISO_MANUAL с поддерживаемыми диапазонами скорости ISO (мин./макс./шаг). Предустановки числовых ISO_Xxx не поддерживаются для ISO для каждого кадра.
Элемент фокуса
Размер
Это размер структуры KSCAMERA_PERFRAMESETTING_CAP_HEADER + размер структуры KSPROPERTY_STEPPING_LONG .
Тип
Это должно быть KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_FOCUS.
Flags
Содержит доступные флаги. Это поле должно быть задано с помощью битового или флага, определенного ниже в ksmedis.h.
#define KSCAMERA_PERFRAMESETTING_MANUAL 0x0000000200000000
Payload
Полезные данные диапазона должны быть указаны в структуре KSPROPERTY_STEPPING_LONG. Минимальное, максимальное и пошаговое положение объектива определяются по KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMinimum, KSPROPERTY_STEPPING_LONG. Bounds.UnsignedMaximum и KSPROPERTY_STEPPING_LONG. SteppingDelta. Поведение фокуса для каждого кадра и способ его взаимодействия с глобальными параметрами фокуса определяется следующим образом.
Положение объектива является липким; но команды фокусировки не являются. Если в глобальных параметрах выбрана непрерывная автоматическая фокусировка (CAF), операция CAF переопределяется только для указанных кадров, и CAF, скорее всего, переместит положение объектива (вероятно, после полного развертки) после указанного фокуса вручную.
Глобальный параметр фокуса всегда предполагается, если явно не переопределен параметром вручную в PFS.
Глобальная AF является однократной и применяется только к первому кадру, если не было указано переопределение вручную.
Глобальное caf применяется ко всем кадрам, если только явно не переопределено PFS.
Глобальные параметры фокуса вручную не отменить изменения после ручного PFS (положение объектива остается).
Тип изображения подтверждения
Размер
Это размер структуры KSCAMERA_PERFRAMESETTING_CAP_HEADER .
Тип
Это должно быть KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_PHOTOCONFIRMATION.
Flags
Поле флагов не используется.
Payload
Полезные данные для этого элемента отсутствуют.
Элемент пользовательского свойства
Размер
Это размер структуры KSCAMERA_PERFRAMESETTING_CAP_HEADER + размер GUID.
Тип
Это должно быть KSCAMERA_PERFRAMESETTING_ITEM_TYPE. KSCAMERA_PERFRAMESETTING_ITEM_CUSTOM.
Flags
Поле флагов не используется.
Payload
Это идентификатор GUID настраиваемого свойства.
Требования
Заголовок |
Ksmedia.h |