Справочник по структуре camera3_stream

Справочник по структуре camera3_stream

#include < camera3.h >

Поля данных

инт тип_потока
uint32_t ширина
uint32_t высота
инт формат
uint32_t Применение
uint32_t max_buffers
пустота * приват
android_dataspace_t data_space
инт вращение
пустота * зарезервировано [7]

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

camera3_stream_t:

Дескриптор одного входного или выходного потока камеры. Поток определяется платформой по разрешению и формату буфера, а также дополнительно по HAL с флагами использования gralloc и максимальным количеством буфера в полете.

Структуры потоков принадлежат платформе, но указатели на camera3_stream , переданные в HAL с помощью configure_streams(), действительны до конца первого последующего вызова configure_streams(), который не включает этот camera3_stream в качестве аргумента, или до конца вызов close().

Все члены camera3_stream , контролируемые фреймворком, становятся неизменяемыми после передачи camera3_stream в configure_streams(). HAL может изменять параметры, контролируемые HAL, только во время вызова configure_streams(), за исключением содержимого частного указателя.

Если вызов configure_streams() возвращает нефатальную ошибку, все активные потоки остаются действительными, как если бы configure_streams() не вызывался.

Конечная точка потока не видна устройству HAL камеры. В DEVICE_API_VERSION_3_1 это было изменено, чтобы совместно использовать флаги использования потребителя для потоков, где камера является производителем (типы потоков OUTPUT и BIDIRECTIONAL), см. поле использования ниже.

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

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

android_dataspace_t data_space

Поле, описывающее содержимое буфера. Размеры формата и буфера определяют расположение памяти и структуру буферов потоков, а dataSpace определяет значение данных в буфере.

Для большинства форматов dataSpace определяет цветовое пространство данных изображения. Кроме того, для некоторых форматов dataSpace указывает, запрашиваются ли данные на основе изображения или глубины. Подробную информацию о форматах и ​​действительных значениях dataSpace для каждого формата см. в system/core/include/system/graphics.h.

Информация о версии:

< КАМЕРА_УСТРОЙСТВА_API_VERSION_3_3:

Не определено и не должно быть доступно. dataSpace следует принимать как HAL_DATASPACE_UNKNOWN, а соответствующее цветовое пространство и т. д. следует определять из флагов использования и формата.

= КАМЕРА_УСТРОЙСТВА_API_VERSION_3_3:

Всегда устанавливается службой камеры. HAL должен использовать это dataSpace для настройки потока на правильное цветовое пространство или для выбора между выходными данными цвета и глубины, если они поддерживаются. Значения пространства данных являются устаревшими определениями в graphics.h.

>= CAMERA_DEVICE_API_VERSION_3_4:

Всегда устанавливается службой камеры. HAL должен использовать это dataSpace для настройки потока на правильное цветовое пространство или для выбора между выходными данными цвета и глубины, если они поддерживаются. Значения пространства данных задаются с использованием определений пространства данных V0 в файле graphics.h.

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

формат int

Формат пикселей для буферов в этом потоке. Формат — это значение из списка HAL_PIXEL_FORMAT_* в system/core/include/system/graphics.h или из заголовков, специфичных для устройства.

Если используется HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED, то модуль gralloc платформы выберет формат на основе флагов использования, предоставленных камерой и другой конечной точкой потока.

<= CAMERA_DEVICE_API_VERSION_3_1:

Устройство камеры HAL должно проверять переданные ему буферы в последующем вызове register_stream_buffers(), чтобы при необходимости получить детали формата, специфичные для реализации.

>= CAMERA_DEVICE_API_VERSION_3_2:

register_stream_buffers() не будет вызываться фреймворком, поэтому HAL должен настроить ISP и конвейер датчиков исключительно на основе размеров, флагов использования и форматов настроенных потоков.

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

uint32_t высота

Высота в пикселях буферов в этом потоке

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

uint32_t max_buffers

Максимальное количество буферов, которые HAL-устройству может потребоваться исключить из очереди одновременно. Устройство HAL не может иметь больше буферов в пути от этого потока, чем это значение.

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

пустота* приват

Дескриптор частной HAL-информации для потока. Не будет проверяться кодом фреймворка.

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

пустота* зарезервировано[7]

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

внутреннее вращение

Требуемый выходной поворот потока, одно из значений camera3_stream_rotation_t. Это должно быть проверено HAL вместе с шириной и высотой потока. Например, если поворот составляет 90 градусов, а ширина и высота потока равны 720 и 1280 соответственно, служба камеры предоставит буферы размером 720x1280, а HAL должен захватить изображение размером 1280x720 и повернуть изображение на 90 градусов против часовой стрелки. Поле вращения не используется, когда вводится тип потока. Камера HAL должна игнорировать поле вращения для входного потока.

<= CAMERA_DEVICE_API_VERSION_3_2:

Не определено и не должно быть доступно. HAL не должен применять поворот к выходным изображениям.

>= CAMERA_DEVICE_API_VERSION_3_3:

Всегда устанавливается службой камеры. HAL должен проверять это поле во время настройки потока и возвращает -EINVAL, если HAL не может выполнить такое чередование. HAL всегда должен поддерживать CAMERA3_STREAM_ROTATION_0, поэтому вызов configure_streams() не должен завершаться ошибкой из-за неподдерживаемого вращения, если поле вращения всех потоков — CAMERA3_STREAM_ROTATION_0.

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

int тип_потока

Тип потока, одно из значений camera3_stream_type_t.

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

использование uint32_t

Флаги использования gralloc для этого потока в соответствии с требованиями HAL. Флаги использования определяются в файле gralloc.h (GRALLOC_USAGE_*) или в заголовках, специфичных для устройства.

Для выходных потоков это флаги использования производителя HAL. Для входных потоков это флаги использования потребителя HAL. Флаги использования от производителя и потребителя будут объединены вместе, а затем переданы в модуль HAL платформы gralloc для выделения буферов gralloc для каждого потока.

Информация о версии:

== CAMERA_DEVICE_API_VERSION_3_0:

При передаче через configure_streams() начальное значение не гарантируется. HAL не может использовать это поле в качестве входных данных и должен перезаписывать это поле своими флагами использования.

>= CAMERA_DEVICE_API_VERSION_3_1:

Для stream_type OUTPUT и BIDIRECTIONAL при передаче через configure_streams() начальным значением этого являются флаги использования потребителя. HAL может использовать эти потребительские флаги для определения конфигурации потока. Для INPUT stream_type при передаче через configure_streams() начальное значение этого параметра равно 0. Для всех потоков, передаваемых через configure_streams(), HAL должен перезаписывать это поле своими флагами использования.

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

uint32_t ширина

Ширина в пикселях буферов в этом потоке

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


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