Referencia de estructura camera3_stream

Referencia de estructura camera3_stream

#include < camera3.h >

Campos de información

En t stream_type
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 controlador para un flujo de entrada o salida de una sola cámara. El marco define una transmisión por la resolución y el formato de su búfer y, además, por la HAL con los indicadores de uso de gralloc y el recuento máximo de búfer en tránsito.

Las estructuras de flujo son propiedad del marco, pero los punteros a un camera3_stream pasados ​​a la HAL por configure_streams() son válidos hasta el final de la primera llamada subsiguiente 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 configure_streams(), excepto por el contenido del puntero privado.

Si una llamada a configure_streams() devuelve un error no fatal, todos los flujos activos siguen siendo válidos 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 secuencias en las que la cámara es un productor (tipos de secuencia de 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

espacio_de_datos_de_android_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 transmisión, 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 válidos de dataSpace para cada formato.

Información de versión:

< CÁMARA_DISPOSITIVO_API_VERSIÓN_3_3:

No definido y no debe ser accedido. Se debe suponer que dataSpace es HAL_DATASPACE_UNKNOWN, y el espacio de color apropiado, etc., se debe determinar a partir de las banderas de uso y el formato.

= CÁMARA_DISPOSITIVO_API_VERSIÓN_3_3:

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

>= CÁMARA_DISPOSITIVO_API_VERSIÓN_3_4:

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

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

formato int

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

Si se utiliza HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED, 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 extremo de la transmisión.

<= CÁMARA_DISPOSITIVO_API_VERSIÓN_3_1:

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

>= CÁMARA_DISPOSITIVO_API_VERSIÓN_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, las marcas de uso y los formatos para las secuencias configuradas.

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

uint32_t altura

La altura en píxeles de los búferes en esta transmisión

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

uint32_t max_buffers

El número máximo de búferes que el dispositivo HAL puede necesitar haber quitado de la cola al mismo tiempo. Es posible que el dispositivo HAL no tenga más búferes en curso de este flujo que este valor.

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

vacío* privado

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

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

vacío* 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 camera3_stream_rotation_t. Esto debe ser inspeccionado por HAL junto con el ancho y la altura del chorro. Por ejemplo, si la rotación es de 90 grados y el ancho y alto de la transmisión es de 720 y 1280 respectivamente, el servicio de cámara proporcionará búferes de tamaño 720x1280, y HAL debería capturar una imagen de 1280x720 y rotar la imagen 90 grados en sentido contrario a las agujas del reloj. El campo de rotación no está operativo cuando se ingresa el tipo de transmisión. La cámara HAL debe ignorar el campo de rotación para un flujo de entrada.

<= CÁMARA_DISPOSITIVO_API_VERSIÓN_3_2:

No definido y no debe ser accedido. HAL no debe aplicar ninguna rotación en las imágenes de salida.

>= CÁMARA_DISPOSITIVO_API_VERSIÓN_3_3:

Siempre fijado por servicio de cámara. HAL debe inspeccionar este campo durante la configuración de flujo y devuelve -EINVAL si HAL no puede realizar dicha rotación. HAL siempre debe ser compatible con CAMERA3_STREAM_ROTATION_0, por lo que una llamada a configure_streams() no debe fallar debido a una rotación no admitida si el campo de rotación de todos los flujos es CAMERA3_STREAM_ROTATION_0.

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

int stream_type

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

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

uso de uint32_t

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

Para 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 el consumidor se combinarán y luego se pasarán al módulo HAL de gralloc de la plataforma para asignar los búferes de gralloc para cada flujo.

Información de versión:

== CÁMARA_DISPOSITIVO_API_VERSIÓN_3_0:

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

>= CÁMARA_DISPOSITIVO_API_VERSIÓN_3_1:

Para stream_type OUTPUT y BIDIRECCIONAL, cuando se pasa a través de configure_streams(), el valor inicial de esto son los indicadores de uso del consumidor. La HAL puede usar estas banderas de consumidores para decidir la configuración del flujo. 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(), la 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 búferes en este flujo

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