referencia de estructura camera3_stream

referencia de estructura camera3_stream

#include < camera3.h >

Campos de información

En t tipo_transmisión
uint32_t ancho
uint32_t altura
En t formato
uint32_t uso
uint32_t max_buffers
vacío * privado
android_dataspace_t espacio_datos
En t rotación
vacío * reservado [7]

Descripción detallada

cámara3_stream_t:

Un identificador para un flujo de entrada o salida de una sola cámara. El marco define una secuencia por su resolución y formato de búfer y, además, por HAL con los indicadores de uso de gralloc y el recuento máximo de búfer en vuelo.

Las estructuras de flujo son propiedad del marco, pero los punteros a un camera3_stream pasado al HAL por configure_streams() son válidos hasta el final de la primera llamada posterior a configure_streams() que no incluye ese camera3_stream como argumento, o hasta el final de la llamada close().

Todos los miembros controlados por el marco camera3_stream son inmutables una vez que camera3_stream se pasa a configure_streams(). HAL solo puede cambiar los parámetros controlados por HAL durante una llamada a configure_streams(), excepto el contenido del puntero privado.

Si una llamada a configure_streams() devuelve un error no fatal, todas las transmisiones activas siguen siendo válidas como si no se hubiera llamado a configure_streams().

El punto final de la transmisión no es visible para el dispositivo HAL de la cámara. En DEVICE_API_VERSION_3_1, esto se cambió para compartir indicadores de uso del consumidor en transmisiones donde la cámara es productora (tipos de transmisión SALIDA y BIDIRECCIONAL); consulte el campo de uso a continuación.

Definición en la línea 1523 del archivo camera3.h .

Documentación de campo

android_dataspace_t espacio_de datos

Un campo que describe el contenido del búfer. El formato y las dimensiones del búfer definen el diseño de la memoria y la estructura de los búferes de flujo, mientras que dataSpace define el significado de los datos dentro del búfer.

Para la mayoría de los formatos, dataSpace define el espacio de color de los datos de la imagen. Además, para algunos formatos, dataSpace indica si se solicitan datos basados ​​en imágenes o en profundidad. Consulte system/core/include/system/graphics.h para obtener detalles sobre los formatos y los valores de espacio de datos válidos para cada formato.

Información de versión:

<CAMERA_DEVICE_API_VERSION_3_3:

No está definido y no se debe acceder a él. Se debe suponer que dataSpace es HAL_DATASPACE_UNKNOWN, y el espacio de color apropiado, etc., debe determinarse a partir de los indicadores de uso y el formato.

= CAMERA_DEVICE_API_VERSION_3_3:

Siempre configurado por el servicio de cámara. HAL debe usar este espacio de datos para configurar la transmisión en el espacio de color correcto o para seleccionar entre salidas de color y profundidad, si es compatible. Los valores del espacio de datos son las definiciones heredadas en gráficos.h

>= CAMERA_DEVICE_API_VERSION_3_4:

Siempre configurado por el servicio de cámara. HAL debe usar este espacio de datos para configurar la transmisión en el espacio de color correcto o para seleccionar entre salidas de color y profundidad, si es compatible. Los valores del espacio de datos se establecen utilizando las definiciones del espacio de datos V0 en gráficos.h

Definición en la línea 1648 del archivo camera3.h .

formato entero

El formato de píxeles de los búferes de esta secuencia. El formato es un valor de la lista HAL_PIXEL_FORMAT_* en system/core/include/system/graphics.h, o de encabezados específicos del dispositivo.

Si se usa HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED, entonces el módulo gralloc de la plataforma seleccionará un formato basado en los indicadores de uso proporcionados por el dispositivo de la cámara y el otro punto final de la transmisión.

<= CAMERA_DEVICE_API_VERSION_3_1:

El dispositivo HAL de la cámara debe inspeccionar los buffers que se le entregan en la llamada posterior a Register_stream_buffers() para obtener los detalles de formato específicos de la implementación, si es necesario.

>= CAMERA_DEVICE_API_VERSION_3_2:

El marco no llamará a Register_stream_buffers(), por lo que HAL debe configurar el ISP y la canalización del sensor basándose únicamente en los tamaños, indicadores de uso y formatos de las transmisiones configuradas.

Definición en la línea 1565 del archivo camera3.h .

uint32_t altura

La altura en píxeles de los buffers en esta secuencia.

Definición en la línea 1542 del archivo camera3.h .

uint32_t max_buffers

El número máximo de buffers que el dispositivo HAL puede necesitar quitar de la cola al mismo tiempo. Es posible que el dispositivo HAL no tenga más buffers en tránsito desde esta secuencia que este valor.

Definición en la línea 1608 del archivo camera3.h .

vacío* privado

Un identificador de información privada HAL para la transmisión. No será inspeccionado por el código marco.

Definición en la línea 1614 del archivo camera3.h .

nulo* reservado[7]

Definición en la línea 1677 del archivo camera3.h .

rotación interna

La rotación de salida requerida de la secuencia, uno de los valores de camera3_stream_rotation_t. HAL debe inspeccionarlo junto con el ancho y la altura del arroyo. Por ejemplo, si la rotación es de 90 grados y el ancho y la altura del flujo son 720 y 1280 respectivamente, el servicio de cámara proporcionará buffers de tamaño 720x1280, y HAL debería capturar una imagen de 1280x720 y rotar la imagen 90 grados en sentido antihorario. El campo de rotación no funciona cuando se ingresa el tipo de transmisión. La cámara HAL debe ignorar el campo de rotación para un flujo de entrada.

<= CAMERA_DEVICE_API_VERSION_3_2:

No está definido y no se debe acceder a él. HAL no debe aplicar ninguna rotación en las imágenes de salida.

>= CAMERA_DEVICE_API_VERSION_3_3:

Siempre configurado por el servicio de cámara. HAL debe inspeccionar este campo durante la configuración de la transmisión y devuelve -EINVAL si HAL no puede realizar dicha rotación. HAL siempre debe admitir CAMERA3_STREAM_ROTATION_0, por lo que una llamada a configure_streams() no debe fallar por rotación no admitida si el campo de rotación de todas las transmisiones es CAMERA3_STREAM_ROTATION_0.

Definición en la línea 1674 del archivo camera3.h .

int tipo_corriente

El tipo de transmisión, uno de los valores de camera3_stream_type_t.

Definición en la línea 1532 del archivo camera3.h .

uso de uint32_t

Las banderas de uso de gralloc para esta secuencia, según lo necesite HAL. Los indicadores de uso se definen en gralloc.h (GRALLOC_USAGE_*) o en encabezados específicos del dispositivo.

Para los flujos de salida, estos son los indicadores de uso del productor de HAL. Para los flujos de entrada, estos son los indicadores de uso del consumidor de HAL. Los indicadores de uso del productor y del consumidor se combinarán y luego se pasarán al módulo HAL de gralloc de la plataforma para asignar los buffers de gralloc para cada flujo.

Información de versión:

== CAMERA_DEVICE_API_VERSION_3_0:

No se garantiza ningún valor inicial cuando se pasa a través de configure_streams(). HAL no puede utilizar este campo como entrada y debe escribir sobre este campo con sus indicadores de uso.

>= CAMERA_DEVICE_API_VERSION_3_1:

Para stream_type OUTPUT y BIDIRECTIONAL, cuando se pasa a través de configure_streams(), el valor inicial de esto son los indicadores de uso del consumidor. HAL puede utilizar estos indicadores de consumidor para decidir la configuración de la transmisión. Para stream_type INPUT, cuando se pasa a través de configure_streams(), el valor inicial de esto es 0. Para todos los flujos pasados ​​a través de configure_streams(), HAL debe escribir sobre este campo con sus indicadores de uso.

Definición en la línea 1601 del archivo camera3.h .

uint32_t ancho

El ancho en píxeles de los buffers en esta secuencia

Definición en la línea 1537 del archivo camera3.h .


La documentación para esta estructura se generó a partir del siguiente archivo:
  • hardware/libhardware/include/hardware/ camera3.h