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.
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
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.
uint32_t altura |
uint32_t max_buffers |
vacío* privado |
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.
int tipo_corriente |
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.
uint32_t ancho |
La documentación para esta estructura se generó a partir del siguiente archivo:
- hardware/libhardware/include/hardware/ camera3.h