KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY中定義的KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY屬性標識碼可用來從驅動程式取得每個畫面格的功能。 這是僅限 GET 控制件;驅動程式必須失敗任何 SET 呼叫。
使用量摘要
若要使用驅動程式查詢每個畫面設定功能, KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY 屬性控件會連同數據緩衝區一起傳送至驅動程式。 在 GET 呼叫中,驅動程式會在使用下列格式配置所提供的數據緩衝區中填入每個畫面格設定功能承載。
功能承載必須以功能標頭開頭。 每個功能項目都必須以項目標頭開頭。 如果功能專案具有承載,則項目標頭後面必須接著對應的項目承載。
在 GET 呼叫中,會先將零長度緩衝區傳送至驅動程式,以找出所需的數據緩衝區大小,以保存整個功能承載。 為了回應呼叫,驅動程式必須傳回 STATUS_BUFFER_OVERFLOW ,且所需的功能緩衝區大小必須至少為 KSCAMERA_PERFRAMESETTING_CAP_HEADER的大小。
以下是KSCAMERA_PERFRAMESETTING_ITEM_TYPE列舉中所定義專案類型內容中KSCAMERA_PERFRAMESETTING_CAP_HEADER欄位的描述。 承載欄位代表 KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER 結構之後的項目承載結構。
曝光時間專案
大小
如果支援手動模式,這是 KSCAMERA_PERFRAMESETTING_CAP_HEADER 結構的大小 + KSPROPERTY_STEPPING_LONGLONG 結構的大小。
類型
這必須 KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_TIME。
旗標
這包含可用的旗標。 此欄位必須包含可用的旗標,方法是執行 ksmedia.h 中所定義之旗標的位 OR。
#define KSCAMERA_PERFRAMESETTING_AUTO 0x0000000100000000
#define KSCAMERA_PERFRAMESETTING_MANUAL 0x0000000200000000
承載重量
如果驅動程式支援手動模式,則必須在KSPROPERTY_STEPPING_LONGLONG中指定範圍承載。Bounds.SignedMinimum\SignedMaxmum 和 KSPROPERTY_STEPPING_LONGLONG。SteppingDelta
Flash 專案
大小
這是 KSCAMERA_PERFRAMESETTING_CAP_HEADER 結構的大小。
類型
這必須 KSCAMERA_PERFRAMESETTING_ITEM_TYPE。KSCAMERA_PERFRAMESETTING_ITEM_FLASH
旗標
這包含可用的旗標。 此欄位必須包含可用旗標,方法是在 ksmedia.h 中執行下方所定義的 FLASH 旗標位 OR。
#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
承載重量
快閃項目沒有承載。 如果在旗標中指定KSCAMERA_EXTENDEDPROP_FLASH_ON_ADJUSTABLEPOWER或KSCAMERA_EXTENDEDPROP_FLASH_AUTO_ADJUSTABLEPOWER,則power參數的範圍是從0到100。
曝光補償專案
大小
如果支援步驟,這是 KSCAMERA_PERFRAMESETTING_CAP_HEADER 結構的大小 + KSPROPERTY_STEPPING_LONG 結構的大小。
類型
這必須 KSCAMERA_PERFRAMESETTING_ITEM_TYPE。KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_COMPENSATION
旗標
這包含可用的旗標。 此欄位必須包含可用的旗標,方法是執行下列 ksmedia.h 中定義的 EVCOMP 旗標位 OR 或 ksmedia_phone.h 中定義的 AUTO 旗標。
#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
承載重量
如果驅動程式只支持自動模式,則不會包含承載。 否則,必須在 KSPROPERTY_STEPPING_LONG 結構中指定範圍承載。 EV 補償的最小值和最大值是絕對 EV 補償值,且由KSPROPERTY_STEPPING_LONG決定 。Bounds.SignedMinimum 和 KSPROPERTY_STEPPING_LONG。Bounds.SignedMaximum。 EV 補償的步驟取決於對應至浮點數 (之最低 EVCOMP 步驟旗標的步驟大小,例如,KSCAMERA_EXTENDEDPROP_EVCOMP_SIXTHSTEP) 为 1/6。
ISO 速度專案
大小
如果支援手動模式,這是 KSCAMERA_PERFRAMESETTING_CAP_HEADER 結構的大小 + KSPROPERTY_STEPPING_LONG 結構的大小。
類型
這必須 KSCAMERA_PERFRAMESETTING_ITEM_TYPE。KSCAMERA_PERFRAMESETTING_ITEM_ISO
旗標
此欄位包含可用的旗標。 此欄位必須包含可在 ksmedia.h 和 ksmedia_phone.h 中定義之 ISO 旗標的位 OR,以包含可用的旗標。 如果支援每個畫面 ISO,驅動程式必須至少支援下列其中一項功能,ISO_AUTO和ISO_MANUAL,其中ISO_AUTO是必要的。 如果ISO_MANUAL公告,驅動程式必須在 KSPROPERTY_STEPPING_LONG 中進一步公告支援的 ISO 速度 min\max\step 。 如果需要手動 ISO,則必須支援ISO_MANUAL。
#define KSCAMERA_EXTENDEDPROP_ISO_MANUAL 0x0080000000000000
#define KSCAMERA_EXTENDEDPROP_ISO_AUTO 0x0000000000000001
承載重量
如果驅動程式只支持自動模式,則不會包含承載。 否則,必須在 KSPROPERTY_STEPPING_LONG 結構中指定範圍承載。 ISO 速度的最小值、最大值和步驟取決於 KSPROPERTY_STEPPING_LONG。Bounds.UnsignedMinimum,KSPROPERTY_STEPPING_LONG。Bounds.UnsignedMaximum 和 KSPROPERTY_STEPPING_LONG。Bounds.SteppingDelta。 支援整數手動 ISO 的驅動程式應該只以支援的 ISO 速度範圍公告ISO_MANUAL, (min/max/step) 。 每個畫面格 ISO 不支援數值ISO_Xxx預設值。
焦點專案
大小
這是 KSCAMERA_PERFRAMESETTING_CAP_HEADER 結構的大小 + KSPROPERTY_STEPPING_LONG 結構的大小。
類型
這必須 KSCAMERA_PERFRAMESETTING_ITEM_TYPE。KSCAMERA_PERFRAMESETTING_ITEM_FOCUS。
旗標
這包含可用的旗標。 此字段必須藉由在 ksmedis.h 中執行以下所定義的旗標位 OR 來設定。
#define KSCAMERA_PERFRAMESETTING_MANUAL 0x0000000200000000
承載重量
必須在KSPROPERTY_STEPPING_LONG結構中指定範圍承載。 從KSPROPERTY_STEPPING_LONG決定鏡頭位置的最小值、最大值和步驟。Bounds.UnsignedMinimum,KSPROPERTY_STEPPING_LONG。Bounds.UnsignedMaximum 和 KSPROPERTY_STEPPING_LONG。逐步執行Delta。 每個畫面格設定焦點的行為,以及其如何與全域焦點設定互動,如下所示。
鏡頭位置黏性;但焦點命令不是。 如果在全域設定中選取了連續自動焦點 (CAF) ,則 CAF 作業只會針對指定的畫面覆寫,而且 CAF 可能會移動鏡頭位置, (在提供手動焦點之後,可能會在完整掃掠) 之後移動。
除非以 PFS 中的手動設定明確覆寫,否則一律會假設全域焦點設定。
全域 AF 是一次性的,而且只有在未指定手動覆寫時,才會套用至第一個畫面。
除非由 PFS 明確覆寫,否則全域 CAF 會套用至所有畫面格。
全域手動焦點設定不會在手動 PFS 之後還原, (鏡頭位置會維持) 。
確認影像類型
大小
這是 KSCAMERA_PERFRAMESETTING_CAP_HEADER 結構的大小。
類型
這必須 KSCAMERA_PERFRAMESETTING_ITEM_TYPE。KSCAMERA_PERFRAMESETTING_ITEM_PHOTOCONFIRMATION。
旗標
不會使用旗標欄位。
承載重量
此項目沒有承載。
自訂屬性專案
大小
這是 KSCAMERA_PERFRAMESETTING_CAP_HEADER 結構的大小 + GUID 的大小。
類型
這必須 KSCAMERA_PERFRAMESETTING_ITEM_TYPE。KSCAMERA_PERFRAMESETTING_ITEM_CUSTOM。
旗標
未使用旗標欄位。
承載重量
這是自定義屬性 GUID。
規格需求
標頭 |
Ksmedia.h |