Référence de la struct camera3_stream
#include <
camera3.h
>
Champs de données |
|
int | stream_type |
uint32_t | width |
uint32_t | hauteur |
int | format |
uint32_t | Usage |
uint32_t | max_buffers |
void * | priv |
android_dataspace_t | data_space |
int | rotation |
void * | réservé [7] |
Description détaillée
camera3_stream_t:
Poignée d'un flux d'entrée ou de sortie d'une seule caméra. Un flux est défini par le framework en fonction de sa résolution et de son format de tampon, et en outre par le HAL avec les indicateurs d'utilisation de gralloc et le nombre maximal de tampons en cours d'exécution.
Les structures de flux appartiennent au framework, mais les pointeurs vers un camera3_stream transmis au HAL par configure_streams() sont valides jusqu'à la fin du premier appel configure_streams() ultérieur qui ne comprend pas ce camera3_stream comme argument, ou jusqu'à la fin de l'appel close().
Tous les membres camera3_stream contrôlés par le framework sont immuables une fois que camera3_stream est transmis à configure_streams(). Le HAL ne peut modifier les paramètres contrôlés par le HAL que lors d'un appel configure_streams(), à l'exception du contenu du pointeur privé.
Si un appel configure_streams() renvoie une erreur non fatale, tous les flux actifs restent valides comme si configure_streams() n'avait pas été appelé.
Le point de terminaison du flux n'est pas visible par l'appareil HAL de la caméra. Dans DEVICE_API_VERSION_3_1, cette valeur a été modifiée pour partager les indicateurs d'utilisation des consommateurs sur les flux où la caméra est un producteur (types de flux OUTPUT et BIDIRECTIONAL). Consultez le champ d'utilisation ci-dessous.
Documentation des champs
android_dataspace_t data_space |
Champ décrivant le contenu du tampon. Les dimensions de format et de tampon définissent la mise en page et la structure de mémoire des tampons de flux, tandis que dataSpace définit la signification des données dans le tampon.
Pour la plupart des formats, dataSpace définit l'espace colorimétrique des données d'image. De plus, pour certains formats, dataSpace indique si des données basées sur des images ou sur la profondeur sont demandées. Pour en savoir plus sur les formats et les valeurs de dataSpace valides pour chaque format, consultez system/core/include/system/graphics.h.
Informations sur la version:
< CAMERA_DEVICE_API_VERSION_3_3:
Non défini et ne doit pas être accessible. dataSpace doit être considéré comme HAL_DATASPACE_UNKNOWN, et l'espace de couleur approprié, etc., doit être déterminé à partir des indicateurs d'utilisation et du format.
= CAMERA_DEVICE_API_VERSION_3_3:
Toujours défini par le service de caméra. HAL doit utiliser ce dataSpace pour configurer le flux avec le bon espace de couleurs, ou pour choisir entre les sorties de couleur et de profondeur, le cas échéant. Les valeurs de l'espace de données correspondent aux anciennes définitions de graphics.h.
>= CAMERA_DEVICE_API_VERSION_3_4:
Toujours défini par le service de caméra. HAL doit utiliser ce dataSpace pour configurer le flux avec le bon espace de couleurs, ou pour choisir entre les sorties de couleur et de profondeur, le cas échéant. Les valeurs de l'espace de données sont définies à l'aide des définitions de l'espace de données V0 dans graphics.h.
Format int |
Format de pixel des tampons de ce flux. Le format est une valeur de la liste HAL_PIXEL_FORMAT_* dans system/core/include/system/graphics.h ou des en-têtes spécifiques à l'appareil.
Si HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED est utilisé, le module gralloc de la plate-forme sélectionne un format en fonction des indicateurs d'utilisation fournis par l'appareil photo et l'autre point de terminaison du flux.
<= CAMERA_DEVICE_API_VERSION_3_1:
L'appareil HAL de l'appareil photo doit inspecter les tampons qui lui sont transmis dans l'appel register_stream_buffers() suivant pour obtenir les détails du format spécifiques à l'implémentation, si nécessaire.
>= CAMERA_DEVICE_API_VERSION_3_2:
register_stream_buffers() ne sera pas appelé par le framework. Le HAL doit donc configurer l'ISP et le pipeline de capteurs uniquement en fonction des tailles, des indicateurs d'utilisation et des formats des flux configurés.
hauteur uint32_t |
uint32_t max_buffers |
void* priv |
Rotation int |
Rotation de sortie requise du flux, l'une des valeurs camera3_stream_rotation_t. HAL doit l'inspecter, ainsi que la largeur et la hauteur du flux. Par exemple, si la rotation est de 90 degrés et que la largeur et la hauteur du flux sont respectivement de 720 et 1 280, le service de caméra fournira des tampons de taille 720 x 1 280, et HAL doit capturer une image de 1 280 x 720 et la faire pivoter de 90 degrés dans le sens antihoraire. Le champ de rotation est inactif lorsque le type de flux est saisi. Le HAL de l'appareil photo doit ignorer le champ de rotation pour un flux d'entrée.
<= CAMERA_DEVICE_API_VERSION_3_2:
Non défini et ne doit pas être accessible. Le HAL ne doit appliquer aucune rotation aux images de sortie.
>= CAMERA_DEVICE_API_VERSION_3_3:
Toujours défini par le service de caméra. HAL doit inspecter ce champ lors de la configuration du flux et renvoie -EINVAL si HAL ne peut pas effectuer une telle rotation. HAL doit toujours prendre en charge CAMERA3_STREAM_ROTATION_0. Par conséquent, un appel configure_streams() ne doit pas échouer pour une rotation non prise en charge si le champ de rotation de tous les flux est CAMERA3_STREAM_ROTATION_0.
int stream_type |
Utilisation de uint32_t |
Les indicateurs d'utilisation de gralloc pour ce flux, selon les besoins du HAL. Les indicateurs d'utilisation sont définis dans gralloc.h (GRALLOC_USAGE_*) ou dans les en-têtes spécifiques à l'appareil.
Pour les flux de sortie, il s'agit des indicateurs d'utilisation du producteur du HAL. Pour les flux d'entrée, il s'agit des indicateurs d'utilisation des consommateurs de la HAL. Les indicateurs d'utilisation du producteur et du consommateur seront combinés, puis transmis au module HAL gralloc de la plate-forme pour l'allocation des tampons gralloc pour chaque flux.
Informations sur la version:
== CAMERA_DEVICE_API_VERSION_3_0:
Aucune valeur initiale garantie lorsqu'elle est transmise via configure_streams(). HAL ne peut pas utiliser ce champ comme entrée et doit écrire sur ce champ avec ses indicateurs d'utilisation.
>= CAMERA_DEVICE_API_VERSION_3_1:
Pour les valeurs OUTPUT et BIDIRECTIONAL de stream_type, lorsque transmises via configure_streams(), la valeur initiale correspond aux indicateurs d'utilisation du consommateur. Le HAL peut utiliser ces options pour le consommateur afin de déterminer la configuration du flux. Pour stream_type INPUT, lorsque cette valeur est transmise via configure_streams(), sa valeur initiale est 0. Pour tous les flux transmis via configure_streams(), le HAL doit écrire sur ce champ avec ses indicateurs d'utilisation.
Largeur uint32_t |
La documentation de ce struct a été générée à partir du fichier suivant :
- hardware/libhardware/include/hardware/ camera3.h