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

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

#include < camera3.h >

Поля данных

интервал тип потока
uint32_t ширина
uint32_t высота
интервал формат
uint32_t Применение
uint32_t max_buffers
пустота * приват
android_dataspace_t пространство_данных
интервал вращение
пустота * зарезервировано [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 указывает, запрашиваются ли данные на основе изображения или глубины. См. system/core/include/system/graphics.h для получения подробной информации о форматах и ​​допустимых значениях dataSpace для каждого формата.

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

< CAMERA_DEVICE_API_VERSION_3_3:

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

= CAMERA_DEVICE_API_VERSION_3_3:

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

>= CAMERA_DEVICE_API_VERSION_3_4:

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

intstream_type

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

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

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

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

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

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

== CAMERA_DEVICE_API_VERSION_3_0:

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

>= CAMERA_DEVICE_API_VERSION_3_1:

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

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

uint32_t ширина

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

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


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