Ссылка на структуру camera3_stream_buffer

Ссылка на структуру camera3_stream_buffer

#include < camera3.h >

Поля данных

camera3_stream_t * транслировать
buffer_handle_t * буфер
интервал положение дел
интервал acquire_fence
интервал Release_fence

Подробное описание

camera3_stream_buffer_t:

Один буфер из потока camera3. Он включает в себя дескриптор родительского потока, дескриптор самого буфера gralloc и барьеры синхронизации.

Буфер не определяет, будет ли он использоваться для ввода или вывода; это определяется типом его родительского потока и тем, как буфер передается устройству HAL.

Определение в строке 1755 файла camera3.h .

Полевая документация

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 никогда не ожидает получения ограничения входного буфера из-за ошибки, ограничения синхронизации должны обрабатываться аналогично тому, как они обрабатываются для выходных буферов.

Определение в строке 1800 файла camera3.h .

buffer_handle_t* буфер

Собственный дескриптор буфера

Определение в строке 1764 файла camera3.h .

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.

Определение в строке 1827 файла camera3.h .

международный статус

Текущее состояние буфера, одно из значений camera3_buffer_status_t. Платформа не будет передавать в HAL буферы, находящиеся в состоянии ошибки. В случае, если буфер не может быть заполнен HAL, его статус должен быть установлен на CAMERA3_BUFFER_STATUS_ERROR при возвращении в платформу с помощьюprocess_capture_result().

Определение в строке 1773 файла camera3.h .

camera3_stream_t * поток

Дескриптор потока, с которым связан этот буфер.

Определение в строке 1759 файла camera3.h .


Документация для этой структуры была создана из следующего файла:
  • Аппаратное обеспечение/libhardware/include/hardware/ camera3.h