camera3_stream_buffer 구조체 참조
#include <
camera3.h
>
데이터 필드 |
|
camera3_stream_t * | stream |
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 * stream |
이 구조체에 관한 문서는 다음 파일에서 생성되었습니다.
- hardware/libhardware/include/hardware/ camera3.h