Référence de la struct camera3_stream

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.

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

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.

Définition à la ligne  1648 du fichier camera3.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.

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

hauteur uint32_t

Hauteur, en pixels, des tampons de ce flux

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

uint32_t max_buffers

Nombre maximal de tampons que l'appareil HAL peut avoir déchargés en même temps. L'appareil HAL ne peut pas avoir plus de tampons en cours d'exécution à partir de ce flux que cette valeur.

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

void* priv

Poignée d'informations privées HAL pour le flux. Ne sera pas inspecté par le code du framework.

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

void* reserved[7]

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

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.

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

int stream_type

Type de 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 à 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.

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

Largeur uint32_t

Largeur, en pixels, des tampons de ce flux

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


La documentation de ce struct a été générée à partir du fichier suivant :