次の方法で共有


KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY

KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY は、KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY で定義されており、ドライバーからフレームごとの機能を取得するために使用されます。 これは GET のみのコントロールです。ドライバーは、SET 呼び出しに失敗する必要があります。

使用状況の概要

ドライバーを使用してフレームごとの設定機能を照会するために、KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY プロパティ コントロールがデータ バッファーと共にドライバーに送信されます。 GET 呼び出しでは、ドライバーは、次に指定した形式レイアウトを使用して提供されるデータ バッファー内のフレームごとの設定機能ペイロードを入力します。

機能ペイロードは、機能ヘッダーで始まる必要があります。 各機能項目は、項目ヘッダーで始まる必要があります。 機能項目にペイロードがある場合は、項目ヘッダーの後に対応する項目ペイロードが続く必要があります。

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.UnsignedMinimumKSPROPERTY_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 構造体のサイズです。

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