Référence de structure camera_module

Référence de structure camera_module

#include < camera_common.h >

Champs de données

hw_module_t commun
entier(* get_number_of_cameras (vide)
entier(* get_camera_info )(int camera_id, struct camera_info *info)
entier(* set_callbacks )(const camera_module_callbacks_t *callbacks)
vide(* get_vendor_tag_ops )(vendor_tag_ops_t *ops)
entier(* open_legacy )(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **device)
entier(* set_torch_mode )(const char *camera_id, bool activé)
entier(* initialisation )()
vide * réservé [5]

Description détaillée

Définition à la ligne 646 du fichier camera_common.h .

Documentation de terrain

Méthodes courantes du module caméra. Il doit s'agir du premier membre de camera_module car les utilisateurs de cette structure lanceront un pointeur hw_module_t vers camera_module dans des contextes où l'on sait que hw_module_t fait référence à un camera_module .

Les valeurs de retour pour common.methods->open pour camera_module sont :

0 : en cas d'ouverture réussie de l'appareil photo.

-ENODEV : L'appareil photo ne peut pas être ouvert en raison d'une erreur interne.

-EINVAL : Les arguments d'entrée ne sont pas valides, c'est-à-dire que l'identifiant n'est pas valide et/ou le module n'est pas valide.

-EBUSY : le périphérique de caméra a déjà été ouvert pour cet identifiant de caméra (en utilisant cette méthode ou open_legacy), quelle que soit la version HAL du périphérique sous lequel il a été ouvert.

-EUSERS : le nombre maximal de caméras pouvant être ouvertes simultanément a déjà été ouvert, soit par cette méthode, soit par la méthode open_legacy.

Toutes les autres valeurs de retour de common.methods->open seront traitées comme -ENODEV.

Définition à la ligne 674 du fichier camera_common.h .

int(* get_camera_info)(int camera_id, struct camera_info *info)

get_camera_info :

Renvoie les informations statiques de la caméra pour un appareil photo donné. Ces informations peuvent ne pas changer pour un appareil photo.

Valeurs de retour :

0 : Sur une opération réussie

-ENODEV : L'information ne peut être fournie en raison d'une erreur interne.

-EINVAL : Les arguments d'entrée ne sont pas valides, c'est-à-dire que l'identifiant n'est pas valide et/ou le module n'est pas valide.

Informations sur la version (basées sur camera_module_t.common.module_api_version) :

CAMERA_MODULE_API_VERSION_2_4 ou supérieur :

Lorsqu'une caméra est déconnectée, son identifiant de caméra devient invalide. Appeler cette méthode avec cet identifiant de caméra non valide obtiendra les métadonnées statiques de la caméra -EINVAL et NULL ( camera_info.static_camera_characteristics ).

Définition à la ligne 727 du fichier camera_common.h .

int(* get_number_of_cameras)(void)

get_number_of_cameras :

Renvoie le nombre de caméras accessibles via le module caméra. Les caméras sont numérotées de 0 à N-1, où N est la valeur renvoyée par cet appel. Le nom du périphérique caméra pour open() est simplement le nombre converti en chaîne. Autrement dit, "0" pour l'ID de caméra 0, "1" pour l'ID de caméra 1.

Informations sur la version (basées sur camera_module_t.common.module_api_version) :

CAMERA_MODULE_API_VERSION_2_3 ou version inférieure :

La valeur ici doit être statique et ne peut pas changer après le premier appel à cette méthode.

CAMERA_MODULE_API_VERSION_2_4 ou supérieur :

La valeur ici doit être statique et ne doit compter que les caméras intégrées, qui ont des valeurs d'orientation de caméra CAMERA_FACING_BACK ou CAMERA_FACING_FRONT ( camera_info.facing ). Le HAL ne doit pas inclure les caméras externes ( camera_info.facing == CAMERA_FACING_EXTERNAL) dans la valeur de retour de cet appel. Les frameworks utiliseront le rappel camera_device_status_change pour gérer le nombre de caméras externes.

Définition à la ligne 701 du fichier camera_common.h .

void(* get_vendor_tag_ops)(vendor_tag_ops_t *ops)

get_vendor_tag_ops :

Obtenez des méthodes pour interroger les informations sur les balises de métadonnées d’extension du fournisseur. Le HAL doit renseigner toutes les méthodes de fonctionnement des balises du fournisseur, ou laisser les opérations inchangées si aucune balise du fournisseur n'est définie.

La structure supplier_tag_ops utilisée ici est définie dans : system/media/camera/include/system/vendor_tags.h

Informations sur la version (basées sur camera_module_t.common.module_api_version) :

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1 : Non fourni par le module HAL. Framework ne peut pas appeler cette fonction.

CAMERA_MODULE_API_VERSION_2_2 : valide pour être appelé par le framework.

Définition à la ligne 778 du fichier camera_common.h .

int(*init)()

initialisation :

Cette méthode est appelée par le service de caméra avant que toute autre méthode ne soit invoquée, juste après le chargement réussi de la bibliothèque HAL de la caméra. Il peut être laissé à NULL par le module HAL, si aucune initialisation n'est nécessaire.

Il peut être utilisé par les implémentations HAL pour effectuer l'initialisation et d'autres opérations ponctuelles.

Informations sur la version (basées sur camera_module_t.common.module_api_version) :

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3 : Non fourni par le module HAL. Framework n’appellera pas cette fonction.

CAMERA_MODULE_API_VERSION_2_4 : s'il n'est pas NULL, sera toujours appelé par le framework une fois après le chargement du module HAL, avant l'appel de toute autre méthode du module HAL.

Valeurs de retour :

0 : Sur une opération réussie.

-ENODEV : L'initialisation ne peut pas être terminée en raison d'une erreur interne. Le HAL doit être supposé être dans un état non fonctionnel.

Définition à la ligne 909 du fichier camera_common.h .

int(* open_legacy)(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **device)

open_legacy :

Ouvrez un périphérique HAL de caméra hérité spécifique si plusieurs versions de l'API HAL de périphérique sont prises en charge par ce module HAL de caméra. Par exemple, si le module de caméra prend en charge à la fois l'API de périphérique CAMERA_DEVICE_API_VERSION_1_0 et CAMERA_DEVICE_API_VERSION_3_2 pour le même identifiant de caméra, le framework peut appeler cette fonction pour ouvrir le périphérique de caméra en tant que périphérique CAMERA_DEVICE_API_VERSION_1_0.

Il s'agit d'une méthode facultative. Un module Camera HAL n'a pas besoin de prendre en charge plus d'une version HAL de périphérique par périphérique, et ces modules peuvent renvoyer -ENOSYS pour tous les appels à cette méthode. Pour toutes les anciennes versions d’API de périphérique HAL qui ne sont pas prises en charge, elle peut renvoyer -EOPNOTSUPP. Lorsque les cas ci-dessus se produisent, la méthode normale open() (common.methods->open) sera utilisée par le framework à la place.

Informations sur la version (basées sur camera_module_t.common.module_api_version) :

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2 : Non fourni par le module HAL. Framework n’appellera pas cette fonction.

CAMERA_MODULE_API_VERSION_2_3 : valide pour être appelé par le framework.

Valeurs de retour :

0 : en cas d'ouverture réussie de l'appareil photo.

-ENOSYS Cette méthode n'est pas prise en charge.

-EOPNOTSUPP : La version HAL demandée n'est pas prise en charge par cette méthode.

-EINVAL : Les arguments d'entrée ne sont pas valides, c'est-à-dire que l'identifiant n'est pas valide et/ou le module n'est pas valide.

-EBUSY : le périphérique de caméra a déjà été ouvert pour cet identifiant de caméra (en utilisant cette méthode ou la méthode common.methods->open), quelle que soit la version HAL du périphérique sous lequel il a été ouvert.

-EUSERS : le nombre maximal de caméras pouvant être ouvertes simultanément a déjà été ouvert, soit par cette méthode, soit par la méthode common.methods->open.

Définition à la ligne 824 du fichier camera_common.h .

nul* réservé[5]

Définition à la ligne 912 du fichier camera_common.h .

int(* set_callbacks)(const camera_module_callbacks_t *callbacks)

set_callbacks :

Fournissez des pointeurs de fonction de rappel au module HAL pour informer le cadre des événements du module de caméra asynchrone. Le framework appellera cette fonction une fois après le chargement initial du module HAL de la caméra, après le premier appel de la méthode get_number_of_cameras() et avant tout autre appel au module.

Informations sur la version (basées sur camera_module_t.common.module_api_version) :

CAMERA_MODULE_API_VERSION_1_0, CAMERA_MODULE_API_VERSION_2_0 :

Non fourni par le module HAL. Framework ne peut pas appeler cette fonction.

CAMERA_MODULE_API_VERSION_2_1 :

Valable pour être appelé par le framework.

Valeurs de retour :

0 : Sur une opération réussie

-ENODEV : L'opération ne peut pas être terminée en raison d'une erreur interne.

-EINVAL : Les arguments d'entrée ne sont pas valides, c'est à dire que les rappels sont nuls

Définition à la ligne 758 du fichier camera_common.h .

int(* set_torch_mode)(const char *camera_id, bool activé)

set_torch_mode :

Activez ou désactivez le mode torche du flash associé à un identifiant d'appareil photo donné. Si l'opération réussit, HAL doit notifier l'état du framework torch en appelant camera_module_callbacks.torch_mode_status_change() avec le nouvel état.

L'appareil photo a une priorité plus élevée pour accéder au flash. En cas de conflits de ressources, tels que open() est appelé pour ouvrir un appareil photo, le module HAL doit informer le framework via camera_module_callbacks.torch_mode_status_change() que le mode torche a été désactivé et que l'état du mode torche est devenu TORCH_MODE_STATUS_NOT_AVAILABLE. Lorsque les ressources permettant d'activer le mode torche redeviennent disponibles, le module HAL doit informer le framework via camera_module_callbacks.torch_mode_status_change() que l'état du mode torche est devenu TORCH_MODE_STATUS_AVAILABLE_OFF pour que set_torch_mode() soit appelé.

Lorsque le framework appelle set_torch_mode() pour activer le mode torche d'un flash, si HAL ne peut pas maintenir plusieurs modes de torche activés simultanément, HAL doit désactiver le mode torche qui a été activé par un précédent appel set_torch_mode() et en informer le framework. que l'état du mode torche de ce flash est devenu TORCH_MODE_STATUS_AVAILABLE_OFF.

Informations sur la version (basées sur camera_module_t.common.module_api_version) :

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3 : Non fourni par le module HAL. Framework n’appellera pas cette fonction.

CAMERA_MODULE_API_VERSION_2_4 : valide pour être appelé par le framework.

Valeurs de retour :

0 : Sur une opération réussie.

-ENOSYS : L'appareil photo ne prend pas en charge cette opération. Il est renvoyé si et seulement si android.flash.info.available est faux.

-EBUSY : la caméra est déjà utilisée.

-EUSERS : les ressources nécessaires pour activer le mode torche ne sont pas disponibles, généralement parce que d'autres appareils photo détiennent les ressources nécessaires pour rendre l'utilisation du flash impossible.

-EINVAL : camera_id n'est pas valide.

Définition à la ligne 878 du fichier camera_common.h .


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