KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY

Идентификатор свойства KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY , определенный в KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY , используется для получения возможностей каждого кадра от драйвера. Это только элемент управления GET; драйвер должен завершиться сбоем всех вызовов SET.

Сводка использования

Чтобы запросить возможность настройки каждого кадра с помощью драйвера, элемент управления свойством KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY отправляется драйверу вместе с буфером данных. В вызове GET драйвер заполняет полезные данные возможности параметра кадра в буфере данных, предоставленном с помощью макета формата, указанного ниже.

Полезные данные возможности должны начинаться с заголовка возможности. Каждый элемент возможностей должен начинаться с заголовка элемента. Если элемент возможности содержит полезные данные, за заголовком элемента должны следовать соответствующие полезные данные.

В вызове 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. Поведение фокуса для каждого кадра и способ его взаимодействия с глобальными параметрами фокуса определяется следующим образом.

  1. Положение объектива является липким; но команды фокусировки не являются. Если в глобальных параметрах выбрана непрерывная автоматическая фокусировка (CAF), операция CAF переопределяется только для указанных кадров, и CAF, скорее всего, переместит положение объектива (вероятно, после полного развертки) после указанного фокуса вручную.

  2. Глобальный параметр фокуса всегда предполагается, если явно не переопределен параметром вручную в PFS.

  3. Глобальная AF является однократной и применяется только к первому кадру, если не было указано переопределение вручную.

  4. Глобальное caf применяется ко всем кадрам, если только явно не переопределено PFS.

  5. Глобальные параметры фокуса вручную не отменить изменения после ручного 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