Ссылка на структуру camera3_stream_buffer
#include < camera3.h >
Поля данных | |
camera3_stream_t * | транслировать |
buffer_handle_t * | буфер |
интервал | положение дел |
интервал | acquire_fence |
интервал | Release_fence |
Подробное описание
camera3_stream_buffer_t:
Один буфер из потока camera3. Он включает в себя дескриптор родительского потока, дескриптор самого буфера gralloc и барьеры синхронизации.
Буфер не определяет, будет ли он использоваться для ввода или вывода; это определяется типом его родительского потока и тем, как буфер передается устройству HAL.
Полевая документация
intacquire_fence |
Ограничитель синхронизации получения для этого буфера. HAL должен дождаться этого ограничительного fd, прежде чем пытаться прочитать или записать в этот буфер.
Для платформы может быть установлено значение -1, чтобы указать, что для этого буфера ожидание не требуется.
Когда HAL возвращает выходной буфер в платформу с помощью функцииprocess_capture_result(), параметрacquire_fence должен быть установлен в -1. Если HAL никогда не ожидает получения_fence из-за ошибки при заполнении буфера, при вызове функцииprocess_capture_result() HAL должен установить для Release_fence буфера значение Acquire_fence, переданное ему платформой. Это позволит платформе ожидать ожидания перед повторным использованием буфера.
Для входных буферов HAL не должен изменять полеacquire_fence во время вызоваprocess_capture_request().
>= CAMERA_DEVICE_API_VERSION_3_2:
Когда HAL возвращает входной буфер в платформу с помощью функцииprocess_capture_result(), параметрacquire_fence должен быть установлен в -1. Если HAL никогда не ожидает получения ограничения входного буфера из-за ошибки, ограничения синхронизации должны обрабатываться аналогично тому, как они обрабатываются для выходных буферов.
int Release_fence |
Ограждение синхронизации выпуска для этого буфера. HAL должен установить это ограничение при возврате буферов в платформу или записать -1, чтобы указать, что для этого буфера ожидание не требуется.
Для выходных буферов ограничения должны быть установлены в массиве выходных_буферов, передаваемом в процесс_capture_result().
<= CAMERA_DEVICE_API_VERSION_3_1:
Для входного буфера ограничение освобождения должно быть установлено вызовомprocess_capture_request().
>= CAMERA_DEVICE_API_VERSION_3_2:
Для входного буфера границы должны быть установлены в input_buffer, передаваемом в процесс_capture_result().
После сигнализации Release_fence для этого буфера HAL не должен предпринимать дальнейших попыток доступа к этому буферу, поскольку право собственности было полностью передано обратно в структуру.
Если было указано ограничение -1, то право собственности на этот буфер передается обратно сразу же после вызоваprocess_capture_result.
международный статус |
Текущее состояние буфера, одно из значений camera3_buffer_status_t. Платформа не будет передавать в HAL буферы, находящиеся в состоянии ошибки. В случае, если буфер не может быть заполнен HAL, его статус должен быть установлен на CAMERA3_BUFFER_STATUS_ERROR при возвращении в платформу с помощьюprocess_capture_result().
camera3_stream_t * поток |
Документация для этой структуры была создана из следующего файла:
- Аппаратное обеспечение/libhardware/include/hardware/ camera3.h