Référence de structure camera3_stream

Référence de structure camera3_stream

#include < camera3.h >

Champs de données

int type_flux
uint32_t largeur
uint32_t hauteur
int format
uint32_t usage
uint32_t max_buffers
vide * privé
android_dataspace_t espace_données
int rotation
vide * réservé [7]

Description détaillée

camera3_stream_t :

Un handle vers un flux d’entrée ou de sortie de caméra unique. Un flux est défini par le framework par sa résolution et son format de tampon, et en outre par le HAL avec les indicateurs d'utilisation de gralloc et le nombre maximum de tampons en vol.

Les structures de flux appartiennent au framework, mais les pointeurs vers un camera3_stream transmis dans le HAL par configure_streams() sont valides jusqu'à la fin du premier appel configure_streams() suivant qui n'inclut pas ce camera3_stream comme argument, ou jusqu'à la fin de l'appel close().

Tous les membres contrôlés par le framework camera3_stream sont immuables une fois que camera3_stream est passé dans configure_streams(). Le HAL ne peut modifier les paramètres contrôlés par 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 final du flux n’est pas visible pour le périphérique HAL de la caméra. Dans DEVICE_API_VERSION_3_1, cela a été modifié pour partager les indicateurs d'utilisation du consommateur sur les flux où la caméra est un producteur (types de flux OUTPUT et BIDIRECTIONAL), voir le champ d'utilisation ci-dessous.

Définition à la ligne 1523 du fichier camera3.h .

Documentation de terrain

android_dataspace_t data_space

Un champ qui décrit le contenu du tampon. Le format et les dimensions du tampon définissent la disposition de la mémoire et la structure 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 l'image ou la profondeur sont demandées. Voir system/core/include/system/graphics.h pour plus de détails sur les formats et les valeurs dataSpace valides pour chaque format.

Information sur la version:

< CAMERA_DEVICE_API_VERSION_3_3 :

Non défini et ne doit pas être consulté. dataSpace doit être supposé être HAL_DATASPACE_UNKNOWN, et l'espace colorimétrique approprié, etc., doit être déterminé à partir des indicateurs d'utilisation et du format.

= CAMERA_DEVICE_API_VERSION_3_3 :

Toujours réglé par le service caméra. HAL doit utiliser cet espace de données pour configurer le flux sur le bon espace colorimétrique, ou pour choisir entre les sorties de couleur et de profondeur si elles sont prises en charge. Les valeurs de l'espace de données sont les définitions héritées de graphiques.h

>= CAMERA_DEVICE_API_VERSION_3_4 :

Toujours réglé par le service caméra. HAL doit utiliser cet espace de données pour configurer le flux sur le bon espace colorimétrique, ou pour choisir entre les sorties de couleur et de profondeur si elles sont prises en charge. Les valeurs de l'espace de données sont définies à l'aide des définitions de l'espace de données V0 dans graphiques.h

Définition à la ligne 1648 du fichier camera3.h .

format entier

Le format de pixel pour les 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 au périphérique.

Si HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED est utilisé, le module gralloc de la plateforme sélectionnera un format en fonction des indicateurs d'utilisation fournis par la caméra et l'autre point de terminaison du flux.

<= CAMERA_DEVICE_API_VERSION_3_1 :

Le périphérique HAL de la caméra doit inspecter les tampons qui lui sont transmis lors de l'appel ultérieur à register_stream_buffers() pour obtenir les détails de 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, donc le HAL doit configurer le pipeline du FAI et du capteur en fonction uniquement des tailles, des indicateurs d'utilisation et des formats des flux configurés.

Définition à la ligne 1565 du fichier camera3.h .

uint32_t hauteur

La hauteur en pixels des buffers dans ce flux

Définition à la ligne 1542 du fichier camera3.h .

uint32_t max_buffers

Nombre maximum de tampons que le périphérique HAL peut avoir besoin de retirer de la file d'attente en même temps. Le périphérique HAL ne peut pas avoir plus de tampons en vol à partir de ce flux que cette valeur.

Définition à la ligne 1608 du fichier camera3.h .

vide* privé

Un handle vers les informations privées HAL pour le flux. Ne sera pas inspecté par le code-cadre.

Définition à la ligne 1614 du fichier camera3.h .

nul* réservé[7]

Définition à la ligne 1677 du fichier camera3.h .

rotation internationale

La rotation de sortie requise du flux, l'une des valeurs camera3_stream_rotation_t. Cela doit être inspecté par HAL ainsi que la largeur et la hauteur du ruisseau. 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 faire pivoter l'image de 90 degrés dans le sens inverse des aiguilles d'une montre. Le champ de rotation est inopérant lorsque le type de flux est saisi. La caméra HAL doit ignorer le champ de rotation d'un flux d'entrée.

<= CAMERA_DEVICE_API_VERSION_3_2 :

Non défini et ne doit pas être consulté. HAL ne doit appliquer aucune rotation sur les images de sortie.

>= CAMERA_DEVICE_API_VERSION_3_3 :

Toujours réglé 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, donc un appel configure_streams() ne doit pas échouer en cas de rotation non prise en charge si le champ de rotation de tous les flux est CAMERA3_STREAM_ROTATION_0.

Définition à la ligne 1674 du fichier camera3.h .

int type_flux

Le type du flux, l'une des valeurs camera3_stream_type_t.

Définition à la ligne 1532 du fichier camera3.h .

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 au périphérique.

Pour les flux de sortie, il s'agit des indicateurs d'utilisation du producteur de HAL. Pour les flux d'entrée, il s'agit des indicateurs d'utilisation du consommateur de HAL. Les indicateurs d'utilisation du producteur et du consommateur seront combinés puis transmis au module gralloc HAL de la plateforme pour allouer les tampons gralloc pour chaque flux.

Information 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 stream_type OUTPUT et BIDIRECTIONAL, lorsqu'elle est transmise via configure_streams(), la valeur initiale de ceci correspond aux indicateurs d'utilisation du consommateur. La HAL peut utiliser ces indicateurs de consommateur pour décider de la configuration du flux. Pour stream_type INPUT, lorsqu'il est passé via configure_streams(), la valeur initiale de ceci est 0. Pour tous les flux passés via configure_streams(), le HAL doit écrire sur ce champ avec ses indicateurs d'utilisation.

Définition à la ligne 1601 du fichier camera3.h .

largeur uint32_t

La largeur en pixels des tampons dans ce flux

Définition à la ligne 1537 du fichier camera3.h .


La documentation de cette structure a été générée à partir du fichier suivant :
  • matériel/libhardware/include/hardware/ camera3.h