Camera_module 구조체 참조

Camera_module 구조체 참조

#include < camera_common.h >

데이터 필드

hw_module_t 흔한
정수(* get_number_of_cameras )(무효)
정수(* get_camera_info )(int Camera_id, struct Camera_info *info)
정수(* set_callbacks )(const Camera_module_callbacks_t *콜백)
무효의(* get_vendor_tag_ops )(vendor_tag_ops_t *ops)
정수(* open_legacy )(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **device)
정수(* set_torch_mode )(const char *camera_id, bool 활성화됨)
정수(* 초기화 )()
무효의 * 예약됨 [5]

상세 설명

Camera_common.h 파일의 646 번째 줄에 정의되어 있습니다.

현장 문서

카메라 모듈의 일반적인 방법. 이 구조의 사용자는 hw_module_t가 Camera_module을 참조하는 것으로 알려진 컨텍스트에서 hw_module_t를 Camera_module 포인터 캐스팅하므로 이는 Camera_module 의 첫 번째 멤버 여야 합니다.

Camera_module 에 대한 common.methods->open의 반환 값은 다음과 같습니다.

0: 카메라 장치가 성공적으로 열린 경우.

-ENODEV: 내부 오류로 인해 카메라 장치를 열 수 없습니다.

-EINVAL: 입력 인수가 유효하지 않습니다. 즉, ID가 유효하지 않거나 모듈이 유효하지 않습니다.

-EBUSY: 카메라 장치가 열린 장치 HAL 버전에 관계없이 이 카메라 ID에 대해 이미 열렸습니다(이 메서드 또는 open_legacy를 사용하여).

-EUSERS: 이 방법이나 open_legacy 방법으로 동시에 열 수 있는 최대 카메라 장치 수가 이미 열렸습니다.

common.methods->open의 다른 모든 반환 값은 -ENODEV로 처리됩니다.

Camera_common.h 파일의 674 번째 줄에 정의되어 있습니다.

int(* get_camera_info)(int Camera_id, struct Camera_info *info)

get_camera_info:

특정 카메라 장치에 대한 정적 카메라 정보를 반환합니다. 이 정보는 카메라 장치에 따라 변경되지 않을 수 있습니다.

반환 값:

0: 성공적인 작업 시

-ENODEV: 내부 오류로 인해 정보를 제공할 수 없습니다.

-EINVAL: 입력 인수가 유효하지 않습니다. 즉, ID가 유효하지 않거나 모듈이 유효하지 않습니다.

버전 정보(cammon.module_api_version 기준):

CAMERA_MODULE_API_VERSION_2_4 이상:

카메라 연결이 끊어지면 해당 카메라 ID가 유효하지 않게 됩니다. 유효하지 않은 카메라 ID로 이 메소드를 호출하면 -EINVAL 및 NULL 카메라 정적 메타데이터( camera_info.static_camera_characteristics )를 얻게 됩니다.

Camera_common.h 파일의 727 번째 줄에 정의되어 있습니다.

int(* get_number_of_cameras)(void)

get_number_of_cameras:

카메라 모듈을 통해 접근 가능한 카메라 장치의 개수를 반환합니다. 카메라 장치에는 0부터 N-1까지 번호가 지정됩니다. 여기서 N은 이 호출에서 반환된 값입니다. open()의 카메라 장치 이름은 단순히 문자열로 변환된 숫자입니다. 즉, 카메라 ID 0은 "0", 카메라 ID 1은 "1"입니다.

버전 정보(cammon.module_api_version 기준):

CAMERA_MODULE_API_VERSION_2_3 이하:

여기의 값은 정적이어야 하며 이 메서드를 처음 호출한 후에는 변경할 수 없습니다.

CAMERA_MODULE_API_VERSION_2_4 이상:

여기의 값은 정적이어야 하며 CAMERA_FACING_BACK 또는 CAMERA_FACING_FRONT 카메라 방향 값( camera_info.facing )이 있는 내장 카메라만 계산해야 합니다. HAL은 이 호출의 반환 값에 외부 카메라( camera_info.facing == CAMERA_FACING_EXTERNAL)를 포함해서는 안 됩니다. 프레임워크는 카메라_장치_상태_변경 콜백을 사용하여 외부 카메라 수를 관리합니다.

Camera_common.h 파일의 701번째 줄에 정의되어 있습니다.

무효(* get_vendor_tag_ops)(vendor_tag_ops_t *ops)

get_vendor_tag_ops:

공급업체 확장 메타데이터 태그 정보를 쿼리하는 메서드를 가져옵니다. HAL은 모든 공급업체 태그 작업 방법을 채워야 하며, 공급업체 태그가 정의되지 않은 경우 작업을 변경하지 않고 그대로 두어야 합니다.

여기에 사용된 Vendor_tag_ops 구조는 system/media/camera/include/system/vendor_tags.h에 정의되어 있습니다.

버전 정보(cammon.module_api_version 기준):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1: HAL 모듈에서 제공되지 않습니다. 프레임워크에서는 이 함수를 호출할 수 없습니다.

CAMERA_MODULE_API_VERSION_2_2: 프레임워크에서 호출하는 데 유효합니다.

Camera_common.h 파일의 778 번째 줄에 정의되어 있습니다.

int(* 초기화)()

초기화:

이 메소드는 카메라 HAL 라이브러리가 성공적으로 로드된 직후, 다른 메소드가 호출되기 전에 카메라 서비스에 의해 호출됩니다. 초기화가 필요하지 않은 경우 HAL 모듈에 의해 NULL로 남겨질 수 있습니다.

HAL 구현에서 초기화 및 기타 일회성 작업을 수행하는 데 사용할 수 있습니다.

버전 정보(cammon.module_api_version 기준):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: HAL 모듈에서 제공되지 않습니다. 프레임워크는 이 함수를 호출하지 않습니다.

CAMERA_MODULE_API_VERSION_2_4: NULL이 아닌 경우 HAL 모듈이 로드된 후 다른 HAL 모듈 메서드가 호출되기 전에 항상 프레임워크에서 호출됩니다.

반환 값:

0: 성공적인 작업 시.

-ENODEV: 내부 오류로 인해 초기화를 완료할 수 없습니다. HAL은 작동하지 않는 상태에 있다고 가정해야 합니다.

Camera_common.h 파일의 909 행에 정의되어 있습니다.

int(* open_legacy)(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **device)

개방형_레거시:

이 카메라 HAL 모듈에서 여러 기기 HAL API 버전을 지원하는 경우 특정 기존 카메라 HAL 기기를 엽니다. 예를 들어 카메라 모듈이 동일한 카메라 ID에 대해 CAMERA_DEVICE_API_VERSION_1_0 및 CAMERA_DEVICE_API_VERSION_3_2 장치 API를 모두 지원하는 경우 프레임워크는 이 함수를 호출하여 카메라 장치를 CAMERA_DEVICE_API_VERSION_1_0 장치로 열 수 있습니다.

이는 선택적 방법입니다. 카메라 HAL 모듈은 기기당 둘 이상의 기기 HAL 버전을 지원할 필요가 없으며 이러한 모듈은 이 메서드에 대한 모든 호출에 대해 -ENOSYS를 반환할 수 있습니다. 지원되지 않는 모든 이전 HAL 장치 API 버전의 경우 -EOPNOTSUPP를 반환할 수 있습니다. 위의 경우가 발생하면 프레임워크에서는 일반 open() 메서드(common.methods->open)를 대신 사용합니다.

버전 정보(cammon.module_api_version 기준):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2: HAL 모듈에서 제공되지 않습니다. 프레임워크는 이 함수를 호출하지 않습니다.

CAMERA_MODULE_API_VERSION_2_3: 프레임워크에서 호출하는 데 유효합니다.

반환 값:

0: 카메라 장치가 성공적으로 열린 경우.

-ENOSYS 이 방법은 지원되지 않습니다.

-EOPNOTSUPP: 요청한 HAL 버전은 이 방법에서 지원되지 않습니다.

-EINVAL: 입력 인수가 유효하지 않습니다. 즉, ID가 유효하지 않거나 모듈이 유효하지 않습니다.

-EBUSY: 카메라 장치가 열린 장치 HAL 버전에 관계없이 이 카메라 ID에 대해 이미 열렸습니다(이 방법 또는 common.methods->open 방법을 사용하여).

-EUSERS: 이 방법이나 common.methods->open 방법으로 동시에 열 수 있는 최대 카메라 장치 수가 이미 열렸습니다.

Camera_common.h 파일의 824 번째 줄에 정의되어 있습니다.

무효* 예약됨[5]

Camera_common.h 파일의 912 번째 줄에 정의되어 있습니다.

int(* set_callbacks)(const Camera_module_callbacks_t *콜백)

set_callbacks:

HAL 모듈에 콜백 함수 포인터를 제공하여 프레임워크에 비동기 카메라 모듈 이벤트를 알립니다. 프레임워크는 초기 카메라 HAL 모듈 로드 후, get_number_of_cameras() 메서드가 처음으로 호출된 후, 모듈에 대한 다른 호출 전에 이 함수를 한 번 호출합니다.

버전 정보(cammon.module_api_version 기준):

CAMERA_MODULE_API_VERSION_1_0, CAMERA_MODULE_API_VERSION_2_0:

HAL 모듈에서는 제공되지 않습니다. 프레임워크에서는 이 함수를 호출할 수 없습니다.

CAMERA_MODULE_API_VERSION_2_1:

프레임워크에서 호출하는 것이 유효합니다.

반환 값:

0: 성공적인 작업 시

-ENODEV: 내부 오류로 인해 작업을 완료할 수 없습니다.

-EINVAL: 입력 인수가 유효하지 않습니다. 즉, 콜백이 null입니다.

Camera_common.h 파일의 758 번째 줄에 정의되어 있습니다.

int(* set_torch_mode)(const char *camera_id, bool 활성화됨)

set_torch_mode:

특정 카메라 ID와 연결된 플래시 장치의 토치 모드를 켜거나 끕니다. 작업이 성공하면 HAL은 새 상태로 Camera_module_callbacks.torch_mode_status_change()를 호출하여 프레임워크 토치 상태를 알려야 합니다.

카메라 장치는 플래시 장치에 액세스하는 데 더 높은 우선순위를 갖습니다. 카메라 장치를 열기 위해 open()이 호출되는 등 리소스 충돌이 있는 경우 HAL 모듈은 Camera_module_callbacks.torch_mode_status_change()를 통해 토치 모드가 꺼지고 토치 모드 상태가 TORCH_MODE_STATUS_NOT_AVAILABLE이 되었음을 프레임워크에 알려야 합니다. 토치 모드를 켜는 리소스를 다시 사용할 수 있게 되면 HAL 모듈은 set_torch_mode()가 호출되도록 토치 모드 상태가 TORCH_MODE_STATUS_AVAILABLE_OFF가 되었음을 Camera_module_callbacks.torch_mode_status_change()를 통해 프레임워크에 알려야 합니다.

프레임워크가 플래시 장치의 토치 모드를 켜기 위해 set_torch_mode()를 호출할 때 HAL이 여러 토치 모드를 동시에 켤 수 없는 경우 HAL은 이전 set_torch_mode() 호출로 켜진 토치 모드를 끄고 프레임워크에 알려야 합니다. 해당 플래시 장치의 토치 모드 상태가 TORCH_MODE_STATUS_AVAILABLE_OFF가 되었음을 나타냅니다.

버전 정보(cammon.module_api_version 기준):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: HAL 모듈에서 제공되지 않습니다. 프레임워크는 이 함수를 호출하지 않습니다.

CAMERA_MODULE_API_VERSION_2_4: 프레임워크에서 호출하는 데 유효합니다.

반환 값:

0: 성공적인 작업 시.

-ENOSYS: 카메라 장치가 이 작업을 지원하지 않습니다. android.flash.info.available이 false인 경우에만 반환됩니다.

-EBUSY: 카메라 장치가 이미 사용 중입니다.

-EUSERS: 토치 모드를 켜는 데 필요한 리소스를 사용할 수 없습니다. 일반적으로 다른 카메라 장치가 플래시 장치 사용을 불가능하게 만드는 리소스를 보유하고 있기 때문입니다.

-EINVAL: 카메라_ID가 유효하지 않습니다.

Camera_common.h 파일의 878 번째 줄에 정의되어 있습니다.


이 구조체에 대한 문서는 다음 파일에서 생성되었습니다.