KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY
KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY は、KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY で定義されており、ドライバーからフレームごとの機能を取得するために使用されます。 これは GET のみのコントロールです。ドライバーは、SET 呼び出しに失敗する必要があります。
使用状況の概要
ドライバーを使用してフレームごとの設定機能を照会するために、KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY プロパティ コントロールがデータ バッファーと共にドライバーに送信されます。 GET 呼び出しでは、ドライバーは、次に指定した形式レイアウトを使用して提供されるデータ バッファー内のフレームごとの設定機能ペイロードを入力します。
機能ヘッダー (KSCAMERA_PERFRAMESETTING_CAP_HEADER)
項目ペイロード (KSPROPERTY_STEPPING_LONG または KSPROPERTY_STEPPING_LONGLONG)
機能ペイロードは、機能ヘッダーで始まる必要があります。 各機能項目は、項目ヘッダーで始まる必要があります。 機能項目にペイロードがある場合は、項目ヘッダーの後に対応する項目ペイロードが続く必要があります。
GET 呼び出しでは、最初に長さ 0 のバッファーがドライバーに送信され、機能ペイロード全体を保持するために必要なデータ バッファー サイズが確認されます。 呼び出しに応答して、ドライバーは、少なくとも KSCAMERA_PERFRAMESETTING_CAP_HEADER のサイズである必要がある必要な機能バッファー サイズを持つ STATUS_BUFFER_OVERFLOW を返す必要があります。
KSCAMERA_PERFRAMESETTING_ITEM_TYPE リスト型で定義されている項目の種類のコンテキストでの KSCAMERA_PERFRAMESETTING_CAP_HEADER フィールドの説明を次に示します。 ペイロード フィールドは、KSCAMERA_PERFRAMESETTING_CAP_ITEM_HEADER 構造体の後の項目ペイロード構造を表します。
露出時間項目
[サイズ]
これは、手動モードがサポートされている場合、KSCAMERA_PERFRAMESETTING_CAP_HEADER 構造体のサイズ + KSPROPERTY_STEPPING_LONGLONG 構造体のサイズです。
Type
これは、KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_TIME である必要があります。
フラグ
これには、使用可能なフラグが含まれています。 このフィールドには、ksmedia.h で定義されているフラグのビット論理和を実行して使用できるフラグを含める必要があります。
#define KSCAMERA_PERFRAMESETTING_AUTO 0x0000000100000000
#define KSCAMERA_PERFRAMESETTING_MANUAL 0x0000000200000000
Payload
ドライバーが手動モードをサポートしている場合は、KSPROPERTY_STEPPING_LONGLONG.Bounds.SignedMinimum\SignedMaxmum および KSPROPERTY_STEPPING_LONGLONG.SteppingDelta で範囲ペイロードを指定する必要があります。
フラッシュ項目
[サイズ]
これは、KSCAMERA_PERFRAMESETTING_CAP_HEADER 構造体のサイズです。
Type
これは、KSCAMERA_PERFRAMESETTING_ITEM_TYPE.KSCAMERA_PERFRAMESETTING_ITEM_FLASH である必要があります
フラグ
これには、使用可能なフラグが含まれています。 このフィールドには、ksmedia.h で以下に定義されている FLASH フラグのビット論理和を実行して使用できるフラグを含める必要があります。
#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 構造体のサイズです。
Type
これは、KSCAMERA_PERFRAMESETTING_ITEM_TYPE.KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_COMPENSATION である必要があります
フラグ
これには、使用可能なフラグが含まれています。 このフィールドには、ksmedia.h で以下に定義されている EVCOMP フラグのビット論理和または 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
Payload
ドライバーが自動モードのみをサポートしている場合、ペイロードは含まれません。 それ以外の場合は、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 構造体のサイズです。
Type
これは、KSCAMERA_PERFRAMESETTING_ITEM_TYPE.KSCAMERA_PERFRAMESETTING_ITEM_ISO である必要があります
フラグ
このフィールドには、使用可能なフラグが含まれています。 このフィールドには、ksmedia.h および ksmedia_phone.h で以下に定義されている ISO フラグのビット論理和を実行して使用可能なフラグを含める必要があります。 フレームごとの ISO がサポートされている場合、ドライバーは、ISO_AUTO が必須である次の機能 (ISO_AUTO と ISO_MANUAL) の少なくとも 1 つをサポートする必要があります。 ISO_MANUAL がアドバタイズされている場合、手動 ISO が必要な場合は、KSPROPERTY_STEPPING_LONG.ISO_MANUAL のサポートされている ISO 速度 min\max\step をさらにアドバタイズする必要があります。
#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 速度範囲 (最小/最大/ステップ) を持つ ISO_MANUAL のみをアドバタイズする必要があります。 フレームごとの ISO では、数値 ISO_Xxx プリセットはサポートされていません。
フォーカス項目
[サイズ]
これは、KSCAMERA_PERFRAMESETTING_CAP_HEADER 構造体のサイズ + KSPROPERTY_STEPPING_LONG 構造体のサイズです。
Type
これは、KSCAMERA_PERFRAMESETTING_ITEM_TYPE.KSCAMERA_PERFRAMESETTING_ITEM_FOCUS である必要があります。
フラグ
これには、使用可能なフラグが含まれています。 このフィールドは、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 構造体のサイズです。
Type
これは、KSCAMERA_PERFRAMESETTING_ITEM_TYPE.KSCAMERA_PERFRAMESETTING_ITEM_PHOTOCONFIRMATION である必要があります。
フラグ
フラグ フィールドは使用されません。
Payload
この項目のペイロードはありません。
カスタム プロパティ項目
[サイズ]
これは、KSCAMERA_PERFRAMESETTING_CAP_HEADER 構造体のサイズ + GUID のサイズです。
Type
これは、KSCAMERA_PERFRAMESETTING_ITEM_TYPE.KSCAMERA_PERFRAMESETTING_ITEM_CUSTOM である必要があります。
フラグ
フラグ フィールドは使用されません。
Payload
これはカスタム プロパティ GUID です。
要件
ヘッダー |
Ksmedia.h |