référence de structure camera_module
#include < camera_common.h >
Champs de données | |
hw_module_t | commun |
entier(* | get_number_of_cameras )(void) |
entier(* | get_camera_info )(int camera_id, struct camera_info *info) |
entier(* | set_callbacks )(const camera_module_callbacks_t * rappels) |
annuler(* | 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 )(char const *camera_id, booléen activé) |
entier(* | initialisation )() |
annuler * | réservé [5] |
Description détaillée
Définition à la ligne 646 du fichier camera_common.h .
Documentation de terrain
hw_module_t commun |
Méthodes courantes du module caméra. Cela doit être le premier membre de camera_module car les utilisateurs de cette structure lanceront un pointeur hw_module_t vers camera_module dans des contextes où il est connu que hw_module_t fait référence à un camera_module .
Les valeurs de retour pour common.methods->open pour camera_module sont :
0 : Lors d'une 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 sont invalides, c'est-à-dire que l'identifiant est invalide et/ou que le module est invalide.
-EBUSY : l'appareil photo 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 de l'appareil sous laquelle il a été ouvert.
-EUUSERS : 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 : Les informations ne peuvent pas être fournies en raison d'une erreur interne.
-EINVAL : les arguments d'entrée sont invalides, c'est-à-dire que l'identifiant est invalide et/ou que le module est invalide.
Informations de 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 ID de caméra devient invalide. L'appel de 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 périphériques de caméra accessibles via le module de caméra. Les appareils photo sont numérotés de 0 à N-1, où N est la valeur renvoyée par cet appel. Le nom de l'appareil photo 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 de version (basées sur camera_module_t.common.module_api_version) :
CAMERA_MODULE_API_VERSION_2_3 ou inférieur :
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 :
Obtenir des méthodes pour interroger les informations de balise de métadonnées d'extension de fournisseur. La HAL doit remplir toutes les méthodes d'opération des balises de fournisseur ou laisser les opérations inchangées si aucune balise de fournisseur n'est définie.
La structure vendor_tag_ops utilisée ici est définie dans : system/media/camera/include/system/vendor_tags.h
Informations de 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. Le 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 de 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 : si elle n'est pas NULL, elle sera toujours appelée par le framework une fois après le chargement du module HAL, avant que toute autre méthode de module HAL ne soit appelée.
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. La couche HAL doit être supposée ê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 d'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 les 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, il peut renvoyer -EOPNOTSUPP. Lorsque les cas ci-dessus se produisent, la méthode open() normale (common.methods->open) sera utilisée par le framework à la place.
Informations de 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 : Lors d'une 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 sont invalides, c'est-à-dire que l'identifiant est invalide et/ou que le module est invalide.
-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 laquelle il a été ouvert.
-EUUSERS : 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 *rappels) |
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 de version (basées sur camera_module_t.common.module_api_version) :
CAMÉRA_MODULE_API_VERSION_1_0, CAMÉRA_MODULE_API_VERSION_2_0 :
Non fourni par le module HAL. Le framework ne peut pas appeler cette fonction.
CAMERA_MODULE_API_VERSION_2_1 :
Valide 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 ID d'appareil photo donné. Si l'opération réussit, HAL doit notifier l'état de la torche du framework 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. Lorsqu'il y a des conflits de ressources, comme 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 pour activer le mode torche redeviennent disponibles, le module HAL doit notifier au 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'une unité flash, si HAL ne peut pas maintenir plusieurs modes 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 notifier le framework que l'état du mode torche de cette unité flash est devenu TORCH_MODE_STATUS_AVAILABLE_OFF.
Informations de 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 : l'appareil photo est déjà utilisé.
-EUUSERS : 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 : l'identifiant de la caméra 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 :
- hardware/libhardware/include/hardware/ camera_common.h