camera3_stream_buffer 구조 참조

camera3_stream_buffer 구조 참조

#include < camera3.h >

데이터 필드

camera3_stream_t *흐름
buffer_handle_t *완충기
int상태
intacquire_fence
intrelease_fence

상세 설명

camera3_stream_buffer_t :

camera3 스트림의 단일 버퍼. 부모 스트림에 대한 핸들, gralloc 버퍼 자체에 대한 핸들 및 동기화 펜스를 포함합니다.

버퍼는 입력 또는 출력에 사용할지 여부를 지정하지 않습니다. 부모 스트림 유형과 버퍼가 HAL 장치로 전달되는 방법에 의해 결정됩니다.

camera3.h 파일의 1755 번째 줄에서 정의되었습니다.

현장 문서

int acquire_fence

이 버퍼에 대한 획득 동기화 펜스입니다. HAL은이 버퍼에서 읽거나 쓰기를 시도하기 전에이 펜스 fd에서 기다려야합니다.

프레임 워크는이 버퍼에 대기가 필요하지 않음을 나타 내기 위해 -1로 설정 될 수 있습니다.

HAL이 process_capture_result ()를 사용하여 프레임 워크에 출력 버퍼를 반환 할 때 acquire_fence를 -1로 설정해야합니다. HAL이 버퍼 채우기 오류로 인해 acquire_fence에서 대기하지 않는 경우 process_capture_result () 호출시 HAL은 버퍼의 release_fence를 프레임 워크가 전달한 acquire_fence로 설정해야합니다. 이렇게하면 프레임 워크가 버퍼를 재사용하기 전에 펜스에서 대기 할 수 있습니다.

입력 버퍼의 경우 HAL은 process_capture_request () 호출 중에 acquire_fence 필드를 변경해서는 안됩니다.

> = CAMERA_DEVICE_API_VERSION_3_2 :

HAL이 process_capture_result ()를 사용하여 프레임 워크에 입력 버퍼를 반환 할 때 acquire_fence를 -1로 설정해야합니다. HAL이 오류로 인해 입력 버퍼 획득 차단을 기다리지 않는 경우 동기화 차단은 출력 버퍼에 대해 처리되는 방식과 유사하게 처리되어야합니다.

camera3.h 파일의 1800 번째 줄에서 정의되었습니다.

buffer_handle_t * 버퍼

버퍼에 대한 네이티브 핸들

camera3.h 파일의 1764 번째 줄에서 정의되었습니다.

int release_fence

이 버퍼의 릴리스 동기화 펜스입니다. HAL은 프레임 워크에 버퍼를 반환 할 때이 펜스를 설정하거나이 버퍼에 대해 대기가 필요하지 않음을 나타 내기 위해 -1을 작성해야합니다.

출력 버퍼의 경우 펜스는 process_capture_result ()에 전달 된 output_buffers 배열에 설정되어야합니다.

<= CAMERA_DEVICE_API_VERSION_3_1 :

입력 버퍼의 경우, 릴리즈 펜스는 process_capture_request () 호출에 의해 설정되어야합니다.

> = CAMERA_DEVICE_API_VERSION_3_2 :

입력 버퍼의 경우 펜스는 process_capture_result ()에 전달 된 input_buffer에 설정되어야합니다.

이 버퍼에 대한 release_fence 신호를 보낸 후 HAL은 소유권이 프레임 워크로 완전히 다시 전송되었으므로이 버퍼에 액세스하려고 더 이상 시도하지 않아야합니다.

-1의 차단이 지정된 경우이 버퍼의 소유권은 process_capture_result 호출시 즉시 다시 전송됩니다.

camera3.h 파일의 1827 번째 라인에서 정의되었습니다.

int 상태

camera3_buffer_status_t 값 중 하나 인 버퍼의 현재 상태입니다. 프레임 워크는 오류 상태에있는 HAL에 버퍼를 전달하지 않습니다. HAL이 버퍼를 채울 수없는 경우, process_capture_result ()를 사용하여 프레임 워크에 반환 될 때 상태가 CAMERA3_BUFFER_STATUS_ERROR로 설정되어야합니다.

camera3.h 파일의 1773 번째 라인에서 정의되었습니다.

camera3_stream_t * 스트림

이 버퍼가 연결된 스트림의 핸들

camera3.h 파일의 1759 번째 줄에서 정의되었습니다.


이 구조체에 대한 문서는 다음 파일에서 생성되었습니다.
  • 하드웨어 / libhardware / include / hardware / camera3.h