camera3_stream_buffer 구조 참조
#include < camera3.h >
데이터 필드 | |
camera3_stream_t * | 흐름 |
buffer_handle_t * | 완충기 |
int | 상태 |
int | acquire_fence |
int | release_fence |
상세 설명
camera3_stream_buffer_t :
camera3 스트림의 단일 버퍼. 부모 스트림에 대한 핸들, gralloc 버퍼 자체에 대한 핸들 및 동기화 펜스를 포함합니다.
버퍼는 입력 또는 출력에 사용할지 여부를 지정하지 않습니다. 부모 스트림 유형과 버퍼가 HAL 장치로 전달되는 방법에 의해 결정됩니다.
현장 문서
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이 오류로 인해 입력 버퍼 획득 차단을 기다리지 않는 경우 동기화 차단은 출력 버퍼에 대해 처리되는 방식과 유사하게 처리되어야합니다.
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 호출시 즉시 다시 전송됩니다.
int 상태 |
camera3_stream_t * 스트림 |
이 구조체에 대한 문서는 다음 파일에서 생성되었습니다.
- 하드웨어 / libhardware / include / hardware / camera3.h