Camera3_stream 구조체 참조
#include < camera3.h >
데이터 필드 | |
정수 | stream_type |
uint32_t | 너비 |
uint32_t | 키 |
정수 | 체재 |
uint32_t | 용법 |
uint32_t | max_buffers |
무효의 * | 개인 |
android_dataspace_t | 데이터 공간 |
정수 | 회전 |
무효의 * | 예약됨 [7] |
상세 설명
카메라3_스트림_t:
단일 카메라 입력 또는 출력 스트림에 대한 핸들입니다. 스트림은 버퍼 해상도 및 형식에 따라 프레임워크에 의해 정의되며 추가적으로 gralloc 사용 플래그 및 최대 진행 중인 버퍼 수를 사용하여 HAL에 의해 정의됩니다.
스트림 구조는 프레임워크에 의해 소유되지만,configure_streams()에 의해 HAL에 전달된 Camera3_stream 에 대한 포인터는 해당 Camera3_stream을 인수로 포함 하지 않는 첫 번째 후속 configure_streams() 호출이 끝날 때까지 또는 다음이 끝날 때까지 유효합니다. close() 호출.
모든 Camera3_stream 프레임워크 제어 멤버는 Camera3_stream 이configure_streams()에 전달되면 변경할 수 없습니다. HAL은 개인 포인터의 콘텐츠를 제외하고 구성_streams() 호출 중에 HAL 제어 매개변수만 변경할 수 있습니다.
configure_streams() 호출이 치명적이지 않은 오류를 반환하는 경우 모든 활성 스트림은 마치configure_streams()가 호출되지 않은 것처럼 유효한 상태로 유지됩니다.
스트림의 끝점은 카메라 HAL 장치에 표시되지 않습니다. DEVICE_API_VERSION_3_1에서는 카메라가 생산자인 스트림(OUTPUT 및 BIDIRECTIONAL 스트림 유형)에서 소비자 사용 플래그를 공유하도록 변경되었습니다(아래 사용 필드 참조).
현장 문서
android_dataspace_t 데이터 공간 |
버퍼의 내용을 설명하는 필드입니다. 형식과 버퍼 크기는 스트림 버퍼의 메모리 레이아웃과 구조를 정의하는 반면, dataSpace는 버퍼 내 데이터의 의미를 정의합니다.
대부분의 형식에서 dataSpace는 이미지 데이터의 색상 공간을 정의합니다. 또한 일부 형식의 경우 dataSpace는 이미지 기반 데이터 또는 깊이 기반 데이터가 요청되는지 여부를 나타냅니다. 각 형식에 대한 형식 및 유효한 dataSpace 값에 대한 자세한 내용은 system/core/include/system/graphics.h를 참조하세요.
버전 정보:
< CAMERA_DEVICE_API_VERSION_3_3:
정의되지 않았으며 액세스해서는 안 됩니다. dataSpace는 HAL_DATASPACE_UNKNOWN으로 가정해야 하며, 사용 플래그와 형식에 따라 적절한 색상 공간 등이 결정되어야 합니다.
= CAMERA_DEVICE_API_VERSION_3_3:
항상 카메라 서비스에 의해 설정됩니다. HAL은 이 데이터 공간을 사용하여 스트림을 올바른 색상 공간으로 구성하거나 지원되는 경우 색상과 심도 출력 중에서 선택해야 합니다. 데이터 공간 값은 graphic.h의 레거시 정의입니다.
>= CAMERA_DEVICE_API_VERSION_3_4:
항상 카메라 서비스에 의해 설정됩니다. HAL은 이 데이터 공간을 사용하여 스트림을 올바른 색상 공간으로 구성하거나 지원되는 경우 색상과 심도 출력 중에서 선택해야 합니다. 데이터 공간 값은 graphic.h의 V0 데이터 공간 정의를 사용하여 설정됩니다.
int 형식 |
이 스트림의 버퍼에 대한 픽셀 형식입니다. 형식은 system/core/include/system/graphics.h의 HAL_PIXEL_FORMAT_* 목록 또는 장치별 헤더의 값입니다.
HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED를 사용하는 경우 플랫폼 gralloc 모듈은 카메라 장치와 스트림의 다른 끝점에서 제공하는 사용 플래그를 기반으로 형식을 선택합니다.
<= CAMERA_DEVICE_API_VERSION_3_1:
카메라 HAL 기기는 필요한 경우 구현별 형식 세부정보를 얻기 위해 후속 Register_stream_buffers() 호출에서 전달된 버퍼를 검사해야 합니다.
>= CAMERA_DEVICE_API_VERSION_3_2:
Register_stream_buffers()는 프레임워크에서 호출되지 않으므로 HAL은 구성된 스트림의 크기, 사용 플래그 및 형식을 기반으로 ISP 및 센서 파이프라인을 구성해야 합니다.
uint32_t max_buffers |
정수 회전 |
카메라3_stream_rotation_t 값 중 하나인 스트림의 필수 출력 회전입니다. 이는 스트림 너비 및 높이와 함께 HAL에서 검사해야 합니다. 예를 들어 회전이 90도이고 스트림 너비와 높이가 각각 720과 1280인 경우 카메라 서비스는 720x1280 크기의 버퍼를 제공하고 HAL은 1280x720 이미지를 캡처하고 이미지를 시계 반대 방향으로 90도 회전해야 합니다. 스트림 유형이 입력되면 회전 필드는 작동하지 않습니다. 카메라 HAL은 입력 스트림의 회전 필드를 무시해야 합니다.
<= CAMERA_DEVICE_API_VERSION_3_2:
정의되지 않았으며 액세스하면 안 됩니다. HAL은 출력 이미지에 회전을 적용해서는 안 됩니다.
>= CAMERA_DEVICE_API_VERSION_3_3:
항상 카메라 서비스에 의해 설정됩니다. HAL은 스트림 구성 중에 이 필드를 검사해야 하며 HAL이 이러한 회전을 수행할 수 없는 경우 -EINVAL을 반환해야 합니다. HAL은 항상 CAMERA3_STREAM_ROTATION_0을 지원해야 하므로 모든 스트림의 회전 필드가 CAMERA3_STREAM_ROTATION_0인 경우 지원되지 않는 회전으로 인해configure_streams() 호출이 실패해서는 안 됩니다.
uint32_t 사용법 |
HAL에 필요한 대로 이 스트림에 대한 gralloc 사용 플래그입니다. 사용 플래그는 gralloc.h (GRAALLOC_USAGE_*) 또는 장치별 헤더에 정의됩니다.
출력 스트림의 경우 이는 HAL의 생산자 사용 플래그입니다. 입력 스트림의 경우 이는 HAL의 소비자 사용 플래그입니다. 생산자와 소비자의 사용 플래그는 함께 결합된 다음 각 스트림에 gralloc 버퍼를 할당하기 위해 플랫폼 gralloc HAL 모듈로 전달됩니다.
버전 정보:
== CAMERA_DEVICE_API_VERSION_3_0:
configure_streams()를 통해 전달되면 초기 값이 보장되지 않습니다. HAL은 이 필드를 입력으로 사용할 수 없으며 사용 플래그로 이 필드를 덮어써야 합니다.
>= CAMERA_DEVICE_API_VERSION_3_1:
stream_type OUTPUT 및 BIDIRECTIONAL의 경우,configure_streams()를 통해 전달되면 이 값의 초기 값은 소비자의 사용 플래그입니다. HAL은 이러한 소비자 플래그를 사용하여 스트림 구성을 결정할 수 있습니다. stream_type INPUT의 경우,configure_streams()를 통해 전달되면 초기 값은 0입니다.configure_streams()를 통해 전달된 모든 스트림의 경우 HAL은 해당 사용 플래그로 이 필드를 덮어써야 합니다.
이 구조체에 대한 문서는 다음 파일에서 생성되었습니다.
- 하드웨어 /libhardware/include/hardware/camera3.h