camera_info 구조 참조
#include < camera_common.h >
데이터 필드 | |
int | 면함 |
int | 정위 |
uint32_t | device_version |
const camera_metadata_t * | static_camera_characteristics |
int | 자원 _ 비용 |
char ** | 충돌하는 _ 장치 |
size_t | 충돌 _ 장치 _ 길이 |
상세 설명
camera_common.h 파일의 161 번째 줄에서 정의되었습니다.
현장 문서
char ** 충돌 _ 장치 |
이 카메라 장치를 사용하는 동안 동시에 열 수없는 다른 장치를 나타내는 NULL로 끝나는 문자열로 표시되는 카메라 장치 ID의 배열입니다.
이 필드는이 카메라 장치가 여러 다른 카메라 장치의 합성물이거나 동시 사용을 금지하는 하드웨어 종속성이 있음을 나타내는 데 사용됩니다. 종속성이없는 경우이 필드에 NULL이 반환되어이를 나타낼 수 있습니다.
카메라 서비스는이 카메라 장치가 열려있는 동안이 목록에있는 장치를 동시에 열지 않습니다.
이 필드에서 가리키는 문자열은 카메라 서비스에 의해 정리되지 않으며이 장치가 연결되어있는 동안 유지되어야합니다.
버전 정보 (camera_module_t.common.module_api_version 기반) :
CAMERA_MODULE_API_VERSION_2_3 이하 :
유효하지. NULL이라고 가정 할 수 있습니다. 이 필드를 읽지 마십시오.
CAMERA_MODULE_API_VERSION_2_4 이상 :
항상 유효합니다.
camera_common.h 파일의 404 라인에서 정의되었습니다.
size_t conflicting_devices_length |
conflicting_devices 필드에 지정된 배열의 길이입니다.
버전 정보 (camera_module_t.common.module_api_version 기반) :
CAMERA_MODULE_API_VERSION_2_3 이하 :
유효하지. 0으로 가정 할 수 있습니다.이 필드를 읽지 마십시오.
CAMERA_MODULE_API_VERSION_2_4 이상 :
항상 유효합니다.
camera_common.h 파일의 419 번째 라인에서 정의되었습니다.
uint32_t device_version |
camera_device_t.common.version의 값입니다.
버전 정보 (camera_module_t.common.module_api_version 기반) :
CAMERA_MODULE_API_VERSION_1_0 :
유효하지. CAMERA_DEVICE_API_VERSION_1_0로 가정 할 수 있습니다. 이 필드를 읽지 마십시오.
CAMERA_MODULE_API_VERSION_2_0 이상 :
항상 유효
camera_common.h 파일의 219 번째 라인에서 정의되었습니다.
int 직면 |
카메라가 향하는 방향입니다. 카메라 방향 정의는 system / core / include / system / camera.h를 참조하십시오.
버전 정보 (camera_module_t.common.module_api_version 기반) :
CAMERA_MODULE_API_VERSION_2_3 이하 :
CAMERA_FACING_BACK 또는 CAMERA_FACING_FRONT 여야합니다.
CAMERA_MODULE_API_VERSION_2_4 이상 :
CAMERA_FACING_BACK, CAMERA_FACING_FRONT 또는 CAMERA_FACING_EXTERNAL이어야합니다.
camera_common.h 파일의 177 번째 줄에서 정의되었습니다.
int 방향 |
카메라 이미지의 방향입니다. 이 값은 카메라 이미지를 시계 방향으로 회전하여 디스플레이에 자연스러운 방향으로 올바르게 표시되어야하는 각도입니다. 0, 90, 180 또는 270이어야합니다.
예를 들어 기기에 자연스럽게 긴 화면이 있다고 가정 해 보겠습니다. 후면 카메라 센서는 가로로 장착됩니다. 당신은 화면을보고 있습니다. 카메라 센서의 윗면이 자연스러운 방향으로 화면의 오른쪽 가장자리에 정렬되면 값은 90이어야합니다. 전면 카메라 센서의 윗면이 화면의 오른쪽에 정렬되면 값은 270이 되십시오.
버전 정보 (camera_module_t.common.module_api_version 기반) :
CAMERA_MODULE_API_VERSION_2_3 이하 :
모든 camera_module 버전에서 유효합니다.
CAMERA_MODULE_API_VERSION_2_4 이상 :
카메라 방향이 CAMERA_FACING_BACK 또는 CAMERA_FACING_FRONT 인 경우 유효하고 카메라 방향이 CAMERA_FACING_EXTERNAL 인 경우 유효하지 않습니다.
camera_common.h 파일의 202 번째 라인에서 정의되었습니다.
int resource_cost |
이 카메라 사용의 총 자원 "비용"은 [0, 100] 범위의 정수 값으로 표시됩니다. 여기서 100은 카메라 하위 시스템의 병목 현상을 제한하는 공유 자원의 총 사용량을 나타냅니다. 이는 매우 대략적인 추정치 일 수 있으며 카메라 서비스에서 광고하는 여러 카메라를 동시에 여는 여러 애플리케이션을 허용하지 않는시기를 결정하기 위해 카메라 서비스에 대한 힌트로 사용됩니다.
카메라 서비스는 HAL에 의해 노출 된 카메라 장치의 모든 조합을 동시에 열고 사용할 수 있어야하며 이러한 카메라의 리소스 비용 합계가 100 미만이어야합니다. 비용을 결정하려면 각 카메라 장치가 구성되고 작동한다고 가정해야합니다. 카메라 메타 데이터를 통해 해당 장치에 대해 노출 된 구성 설정에서 사용할 수있는 최대 리소스 소비 프레임 속도 및 스트림 크기 설정에서.
카메라 서비스는 총 리소스 비용이 100을 초과하는 카메라 장치 조합을 동시에 열려고 시도 할 수 있습니다. 성공하거나 실패 할 수 있습니다. 이 작업이 성공하면 구성 호출 중에 여러 장치가 열려있는 리소스 제약으로 인해 지원되지 않는 구성 조합이 실패해야합니다. 총 리소스 비용이 100 미만인 경우 스트림 구성 설정 또는 장치가 유일한 개방형 카메라 장치 일 때 일반적으로 성공할 기타 장치 기능에 대해 열기 및 구성이 실패하지 않아야합니다.
이 필드는 다른 응용 프로그램이 다른 카메라 장치를 사용하는 동안 백그라운드 응용 프로그램이이 카메라 장치를 사용할 수 있는지 여부를 결정하는 데 사용됩니다. 참고 : 카메라 서비스는 여러 응용 프로그램을 사용하여 동일한 카메라 장치를 동시에 열 수 없습니다.
사용 사례의 예 :
전의. 1 : 카메라 장치 0 = 후면 카메라 카메라 장치 1 = 전면 카메라
- 두 카메라 장치를 모두 사용하면 제한된 ISP 대역폭으로 인해 프레임 속도가 크게 저하됩니다.
구성 :
카메라 장치 0-자원 _ 비용 = 51 충돌 _ 장치 = null 카메라 장치 1-자원 _ 비용 = 51 충돌 _ 장치 = 널
결과:
리소스 비용의 합계가 100을 초과하므로 우선 순위가 높은 응용 프로그램에 두 장치 중 하나가 열려 있으면 카메라 서비스에서 두 장치 중 하나를 열도록 우선 순위가 낮은 응용 프로그램이 허용되지 않습니다. 우선 순위가 낮은 응용 프로그램이 우선 순위가 더 높은 장치를 사용하는 경우 우선 순위가 낮은 응용 프로그램이 강제로 장치 연결을 끊습니다.
우선 순위가 가장 높은 응용 프로그램이 선택하는 경우 두 장치를 계속 열려고 할 수 있지만 (이러한 장치는 충돌하는 장치 필드에 충돌로 나열되지 않기 때문에) 이러한 장치의 사용은 열기 또는 구성 호출에서 실패 할 수 있습니다.
전의. 2 : 카메라 장치 0 = 왼쪽 후면 카메라 카메라 장치 1 = 오른쪽 후면 카메라 카메라 장치 2 = 장치 0에서 사용하는 오른쪽 및 왼쪽 후면 카메라 센서를 모두 사용하는 결합 스테레오 카메라, 1 카메라 장치 3 = 전면 카메라
- 하드웨어 제약으로 인해 한 번에 최대 두 대의 카메라를 열 수 있습니다. 결합 된 스테레오 카메라는 두 개의 후면 카메라 장치 (장치 0, 1) 중 하나와 동시에 사용할 수 없으며 일반적으로 전면 카메라 (장치 3)와 동시에 사용하려면 너무 많은 대역폭이 필요합니다.
구성 :
카메라 장치 0-resource_cost = 50 conflicting_devices = {2} 카메라 장치 1-resource_cost = 50 conflicting_devices = {2} 카메라 장치 2-resource_cost = 100 conflicting_devices = {0, 1} 카메라 장치 3-resource_cost = 50 conflicting_devices = null
결과:
conflicting_devices 필드를 기반으로 카메라 서비스는 {1, 2}, {0, 2}와 같은 열린 장치 세트가 허용되지 않음을 보장합니다.
resource_cost 필드에 따라 우선 순위가 높은 포 그라운드 애플리케이션이 카메라 장치 0을 사용하는 경우 백그라운드 애플리케이션이 카메라 장치 1 또는 3을 열 수 있습니다 (하지만 포 그라운드 애플리케이션이 다른 장치를 열면 다시 연결 해제해야 함).
우선 순위가 가장 높은 응용 프로그램은 장치 0, 2 및 3을 동시에 열려고 시도 할 수 있지만 HAL은이 조합에 대한 호출을 열거 나 구성하는 데 실패 할 수 있습니다.
전의. 3 : 카메라 장치 0 = 후면 카메라 카메라 장치 1 = 전면 카메라 카메라 장치 2 = 장치 1과 동일한 센서를 사용하지만 저전력 모드에서 사용할 수있는 이미지 스트림 해상도 만 노출하는 저전력 전면 카메라
두 전면 카메라 (장치 1, 2)를 동시에 사용하는 것은 물리적 센서를 공유하기 때문에 불가능합니다. 하드웨어 제한으로 인해 일부 스트림 구성에서는 후면 및 "고전력"전면 카메라 (장치 1)를 사용하는 것이 불가능할 수 있지만, 특수 전용 하드웨어가 있으므로 "저전력"전면 카메라 옵션을 항상 사용할 수 있습니다.
구성 :
카메라 장치 0-resource_cost = 100 conflicting_devices = null 카메라 장치 1-resource_cost = 100 conflicting_devices = {2} 카메라 장치 2-resource_cost = 0 conflicting_devices = {1} 결과 :
colling_devices 필드를 기반으로 카메라 서비스는 다음과 같은 열린 장치 세트가 허용되지 않음을 보장합니다. {1, 2}.
resource_cost 필드에 따라 우선 순위가 가장 높은 응용 프로그램 만 동시에 장치 0과 1을 열려고 시도 할 수 있습니다. 우선 순위가 높은 응용 프로그램이 장치 1 또는 2를 사용하지 않는 경우 우선 순위가 낮은 백그라운드 응용 프로그램이 장치 2를 열 수 있습니다 (그러나 우선 순위가 높은 응용 프로그램이 이후에 장치 1 또는 2를 열면 연결이 끊어집니다).
버전 정보 (camera_module_t.common.module_api_version 기반) :
CAMERA_MODULE_API_VERSION_2_3 이하 :
유효하지. 100이라고 가정 할 수 있습니다.이 필드를 읽지 마십시오.
CAMERA_MODULE_API_VERSION_2_4 이상 :
항상 유효합니다.
camera_common.h 파일의 376 번째 라인에서 정의되었습니다.
const camera_metadata_t * static_camera_characteristics |
system / media / camera / docs / docs.html에 지정된 모든 정적 카메라 메타 데이터를 포함하는 카메라의 고정 된 특성입니다. 이것은 정렬 된 메타 데이터 버퍼 여야하며 호출자가 수정하거나 해제 할 수 없습니다. 포인터는 카메라 모듈의 수명 동안 유효해야하며 get_camera_info ()에서 반환 한 후에는 포인터의 값이 변경되지 않을 수 있습니다.
버전 정보 (camera_module_t.common.module_api_version 기반) :
CAMERA_MODULE_API_VERSION_1_0 :
유효하지. 추가 특성을 사용할 수 없습니다. 이 필드를 읽지 마십시오.
CAMERA_MODULE_API_VERSION_2_0 이상 :
device_version> = CAMERA_DEVICE_API_VERSION_2_0 인 경우 유효합니다. 달리 읽지 마십시오.
camera_common.h 파일의 241 번째 라인에서 정의되었습니다.
이 구조체에 대한 문서는 다음 파일에서 생성되었습니다.
- 하드웨어 / libhardware / include / hardware / camera_common.h