다음을 통해 공유


KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY

KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_PROPERTY 정의된 KSPROPERTY_CAMERACONTROL_PERFRAMESETTING_CAPABILITY 속성 ID는 드라이버에서 프레임별 기능을 가져오는 데 사용됩니다. 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 구조체의 크기입니다.

형식

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

플래시 항목

크기

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 지정한 경우 전원 매개 변수는 0에서 100까지의 범위에 있습니다.

노출 보정 항목

크기

이는 KSCAMERA_PERFRAMESETTING_CAP_HEADER 구조체의 크기이며 단계가 지원되는 경우 KSPROPERTY_STEPPING_LONG 구조체의 크기입니다.

형식

KSCAMERA_PERFRAMESETTING_ITEM_TYPE 합니다. KSCAMERA_PERFRAMESETTING_ITEM_EXPOSURE_COMPENSATION

플래그

여기에는 사용 가능한 플래그가 포함됩니다. 이 필드에는 ksmedia.h에 정의된 EVCOMP 플래그의 비트 단위 OR 또는 아래에 정의된 auto 플래그를 수행하거나 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 보정 단계는 float에 해당하는 가장 낮은 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_AUTO 및 ISO_MANUAL 기능 중 하나 이상을 지원해야 합니다. 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.UnsignedMaximumKSPROPERTY_STEPPING_LONG. Bounds.SteppingDelta. 정수 수동 ISO를 지원하는 드라이버는 지원되는 ISO 속도 범위(최소/최대/단계)를 사용하여 ISO_MANUAL 보급해야 합니다. 숫자 ISO_Xxx 사전 설정은 프레임별 ISO에 대해 지원되지 않습니다.

포커스 항목

크기

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.UnsignedMaximumKSPROPERTY_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 필드는 사용되지 않습니다.

페이로드

이 항목에 대한 페이로드가 없습니다.

사용자 지정 속성 항목

크기

이는 KSCAMERA_PERFRAMESETTING_CAP_HEADER 구조체의 크기 + GUID의 크기입니다.

형식

KSCAMERA_PERFRAMESETTING_ITEM_TYPE 합니다. KSCAMERA_PERFRAMESETTING_ITEM_CUSTOM.

플래그

플래그 필드는 사용되지 않습니다.

페이로드

사용자 지정 속성 GUID입니다.

요구 사항

헤더

Ksmedia.h