À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release
au lieu de aosp-main
pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Documentation de référence sur la struct camera_device_ops
#include <
camera.h
>
|
int(*
|
set_preview_window
)(struct
camera_device
*, struct
preview_stream_ops
*window)
|
|
void(*
|
set_callbacks
)(struct
CameraDevice
*,
CameraNotifyCallback
notify_cb,
CameraDataCallback
data_cb,
CameraDataTimestampCallback
data_cb_timestamp,
CameraRequestMemory
get_memory, void *user)
|
|
void(*
|
enable_msg_type
)(struct
Camera_device
*, int32_t msg_type)
|
|
void(*
|
disable_msg_type
)(struct
Camera_device
*, int32_t msg_type)
|
|
int(*
|
msg_type_enabled
)(struct
Camera_device
*, int32_t msg_type)
|
|
int(*
|
start_preview
)(struct
Camera_device
*)
|
|
void(*
|
stop_preview
)(struct
camera_device
*)
|
|
int(*
|
preview_enabled
(struct
camera_device
*)
|
|
int(*
|
store_meta_data_in_buffers
)(struct
Camera_device
*, int enable)
|
|
int(*
|
start_recording
)(struct
Camera_device
*)
|
|
void(*
|
stop_recording
)(struct
Camera_device
*)
|
|
int(*
|
recording_enabled
)(struct
Camera_device
*)
|
|
void(*
|
release_recording_frame
)(struct
Camera_device
*, const void *opaque)
|
|
int(*
|
auto_focus
)(struct
Camera_device
*)
|
|
int(*
|
cancel_auto_focus
)(struct
Camera_device
*)
|
|
int(*
|
take_picture
)(struct
Camera_device
*)
|
|
int(*
|
cancel_picture
)(struct
Camera_device
*)
|
|
int(*
|
set_parameters
)(struct
Camera_device
*, const char *parms)
|
|
char *(*
|
get_parameters
)(struct
Camera_device
*)
|
|
void(*
|
put_parameters
(struct
camera_device
*, char *)
|
|
int(*
|
send_command
(struct
camera_device
*, int32_t cmd, int32_t arg1, int32_t arg2)
|
|
void(*
|
release
)(struct
Camera_device
*)
|
|
int(*
|
dump
)(struct
Camera_device
*, int fd)
|
|
Définition à la ligne
99
du fichier
camera.h
.
Démarrez la mise au point automatique. La routine de rappel de notification est appelée avec CAMERA_MSG_FOCUS une fois la mise au point terminée. autoFocus() sera appelé à nouveau si une autre mise au point automatique est nécessaire.
Définition à la ligne
227
du fichier
camera.h
.
Annule la fonction de mise au point automatique. Si le mode autofocus est toujours en cours, cette fonction l'annule. Que le mode autofocus soit en cours ou non, cette fonction rétablit la position de mise au point par défaut. Si l'appareil photo n'est pas compatible avec le mode autofocus, cette opération n'a aucun effet.
Définition à la ligne
235
du fichier
camera.h
.
Annuler une photo lancée avec takePicture. Appeler cette méthode lorsqu'aucune photo n'est prise n'a aucun effet.
Définition à la ligne
246
du fichier
camera.h
.
void(* disable_msg_type)(struct
Camera_device
*, int32_t msg_type)
|
Désactiver un message ou un ensemble de messages
Une fois qu'un appel à disableMsgType(CAMERA_MSG_VIDEO_FRAME) a été reçu, le HAL de la caméra ne doit pas s'appuyer sur son client pour appeler releaseRecordingFrame() afin de libérer les images d'enregistrement vidéo envoyées par le HAL de la caméra avant et après l'appel disableMsgType(CAMERA_MSG_VIDEO_FRAME). Les clients HAL de la caméra ne doivent pas modifier ni accéder à un frame d'enregistrement vidéo après avoir appelé disableMsgType(CAMERA_MSG_VIDEO_FRAME).
Définition à la ligne
132
du fichier
camera.h
.
État de vidage du matériel de la caméra
Définition à la ligne
282
du fichier
camera.h
.
void(* enable_msg_type)(struct
Camera_device
*, int32_t msg_type)
|
Les trois fonctions suivantes acceptent toutes un msg_type, qui est un masque de bits des messages définis dans include/ui/Camera.h Activez un message ou un ensemble de messages.
Définition à la ligne
120
du fichier
camera.h
.
Récupérez les paramètres de l'appareil photo. Le tampon renvoyé par le HAL de la caméra doit lui être renvoyé avec put_parameters, si put_parameters n'est pas NULL.
Définition à la ligne
258
du fichier
camera.h
.
int(* msg_type_enabled)(struct
Camera_device
*, int32_t msg_type)
|
Interrogez si un message ou un ensemble de messages est activé. Notez que cette opération fonctionne comme une opération AND. Si l'un des messages interrogés est désactivé, la valeur renvoyée sera "false".
Définition à la ligne
139
du fichier
camera.h
.
Renvoie la valeur "true" si l'aperçu est activé.
Définition à la ligne
154
du fichier
camera.h
.
Le HAL de l'appareil photo utilise sa propre mémoire pour nous transmettre les paramètres lorsque nous appelons get_parameters. Utilisez cette fonction pour renvoyer la mémoire à l'HAL de la caméra, si put_parameters n'est pas NULL. Si put_parameters est NULL, vous devez utiliser free() pour libérer la mémoire.
Définition à la ligne
265
du fichier
camera.h
.
Renvoie la valeur "true" si l'enregistrement est activé.
Définition à la ligne
208
du fichier
camera.h
.
Libérez les ressources matérielles détenues par cet objet. Notez que cela n'est
pas
effectué dans le destructeur.
Définition à la ligne
277
du fichier
camera.h
.
void(* release_recording_frame)(struct
Camera_device
*, const void *opaque)
|
Libérez un frame d'enregistrement précédemment renvoyé par CAMERA_MSG_VIDEO_FRAME.
Il est de la responsabilité du client HAL de la caméra de libérer les images d'enregistrement vidéo envoyées par le HAL de la caméra avant que le HAL de la caméra ne reçoive un appel pour désactiver le type de message(CAMERA_MSG_VIDEO_FRAME). Une fois qu'il a reçu l'appel de disableMsgType(CAMERA_MSG_VIDEO_FRAME), c'est le HAL de l'appareil photo qui est chargé de gérer le cycle de vie des images d'enregistrement vidéo.
Définition à la ligne
219
du fichier
camera.h
.
int(* send_command)(struct
Camera_device
*, int32_t cmd, int32_t arg1, int32_t arg2)
|
Envoyer une commande au pilote de l'appareil photo
Définition à la ligne
270
du fichier
camera.h
.
Définir les rappels de notification et de données
Définition à la ligne
105
du fichier
camera.h
.
Définissez les paramètres de la caméra. Cette valeur renvoie BAD_VALUE si un paramètre est non valide ou non compatible.
Définition à la ligne
252
du fichier
camera.h
.
Définir l'ANativeWindow à laquelle les frames d'aperçu sont envoyés
Définition à la ligne
101
du fichier
camera.h
.
Lancez le mode Aperçu.
Définition à la ligne
144
du fichier
camera.h
.
Activez le mode Enregistrement. Lorsqu'une image d'enregistrement est disponible, un message CAMERA_MSG_VIDEO_FRAME est envoyé avec le frame correspondant. Chaque frame d'enregistrement doit être libéré par un client HAL de caméra via releaseRecordingFrame() avant que le client n'appelle disableMsgType(CAMERA_MSG_VIDEO_FRAME). Une fois que le client a appelé disableMsgType(CAMERA_MSG_VIDEO_FRAME), c'est le HAL de la caméra qui est chargé de gérer le cycle de vie des frames d'enregistrement vidéo. Le client ne doit pas modifier ni accéder à ces frames.
Définition à la ligne
198
du fichier
camera.h
.
Arrêter un aperçu précédemment lancé.
Définition à la ligne
149
du fichier
camera.h
.
Arrêter un enregistrement précédemment démarré.
Définition à la ligne
203
du fichier
camera.h
.
int(* store_meta_data_in_buffers)(struct
Camera_device
*, int enable)
|
Demandez au HAL de l'appareil photo de stocker des métadonnées ou des données YUV réelles dans les tampons vidéo envoyés via CAMERA_MSG_VIDEO_FRAME pour une session d'enregistrement. S'il n'est pas appelé, le comportement par défaut du HAL de la caméra consiste à stocker des données YUV réelles dans les tampons vidéo.
Pour être efficace, cette méthode doit être appelée avant startRecording().
Si des métadonnées sont stockées dans les tampons vidéo, il appartient au destinataire des tampons vidéo d'interpréter le contenu et de trouver les données de frame réelles à l'aide des métadonnées du tampon. La façon de procéder n'entre pas dans le cadre de cette méthode.
Il est possible que certains HAL de caméra ne soient pas compatibles avec le stockage de métadonnées dans les tampons vidéo, mais tous les HAL de caméra doivent être compatibles avec le stockage de données YUV réelles dans les tampons vidéo. Si le HAL de l'appareil photo n'est pas compatible avec le stockage des métadonnées dans les tampons vidéo lorsqu'il est demandé, INVALID_OPERATION doit être renvoyé. Il est très utile que le HAL de la caméra transmette directement des métadonnées plutôt que les données de trame réelles à l'encodeur vidéo, car la quantité de données de trame non compressées peut être très importante si la taille de la vidéo est importante.
-
Paramètres
-
activer
|
Si la valeur est "true", le HAL de l'appareil photo est invité à stocker des métadonnées dans les tampons vidéo. Si la valeur est "false", le HAL de l'appareil photo est invité à stocker des données YUV réelles dans les tampons vidéo.
|
-
Renvoie
-
OK en cas de réussite.
Définition à la ligne
186
du fichier
camera.h
.
Prenez une photo.
Définition à la ligne
240
du fichier
camera.h
.
La documentation de ce struct a été générée à partir du fichier suivant :
-
hardware/libhardware/include/hardware/
camera.h
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/03/26 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/03/26 (UTC)."],[],[]]