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.
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
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.
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 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.
int stream_type |
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.
uint32_t ancho |
La documentación para esta estructura se generó a partir del siguiente archivo:
- hardware/libhardware/include/hardware/ camera3.h