Strukturreferenz für „camera_module“
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
#include <
camera_common.h
>
Datenfelder |
|
hw_module_t | common |
int(* | get_number_of_cameras )(void) |
int(* | get_camera_info )(int camera_id, struct camera_info *info) |
int(* | set_callbacks )(const camera_module_callbacks_t *callbacks) |
void(* | get_vendor_tag_ops )(vendor_tag_ops_t *ops) |
int(* | open_legacy )(const struct hw_module_t *module, const char *id, uint32_t halVersion, struct hw_device_t **device) |
int(* | set_torch_mode )(const char *camera_id, bool enabled) |
int(* | init )() |
void * | reserved [5] |
Detaillierte Beschreibung
Definition in Zeile 646 der Datei camera_common.h .
Felddokumentation
hw_module_t gemeinsam |
Gängige Methoden des Kameramoduls. Dieser muss das erste Mitglied von camera_module sein, da Nutzer dieser Struktur einen hw_module_t in einen camera_module -Pointer umwandeln, wenn bekannt ist, dass hw_module_t auf ein camera_module verweist.
Die Rückgabewerte für „common.methods->open“ für camera_module sind:
0: Wenn die Kamera erfolgreich geöffnet wurde.
-ENODEV: Das Kameragerät kann aufgrund eines internen Fehlers nicht geöffnet werden.
-EINVAL: Die Eingabeargumente sind ungültig, d.h. die ID und/oder das Modul sind ungültig.
-EBUSY: Das Kameragerät wurde bereits für diese Kamera-ID geöffnet (mit dieser Methode oder open_legacy), unabhängig von der HAL-Version des Geräts, mit der es geöffnet wurde.
-EUSERS: Die maximale Anzahl von Kameras, die gleichzeitig geöffnet werden können, wurde bereits geöffnet, entweder mit dieser Methode oder mit der Methode „open_legacy“.
Alle anderen Rückgabewerte von common.methods->open werden als -ENODEV behandelt.
Definition in Zeile 674 der Datei camera_common.h .
int(* get_camera_info)(int camera_id, struct camera_info *info) |
get_camera_info:
Gibt die statischen Kamerainformationen für ein bestimmtes Kameragerät zurück. Diese Informationen ändern sich möglicherweise nicht für ein Kameragerät.
Rückgabewerte:
0: Bei erfolgreichem Vorgang
-ENODEV: Die Informationen können aufgrund eines internen Fehlers nicht bereitgestellt werden.
-EINVAL: Die Eingabeargumente sind ungültig, d.h. die ID und/oder das Modul sind ungültig.
Versionsinformationen (basierend auf „camera_module_t.common.module_api_version“):
CAMERA_MODULE_API_VERSION_2_4 oder höher:
Wenn die Verbindung zu einer Kamera getrennt wird, ist ihre Kamera-ID ungültig. Wenn Sie diese Methode mit dieser ungültigen Kamera-ID aufrufen, erhalten Sie -EINVAL und NULL-Metadaten für statische Kameras ( camera_info.static_camera_characteristics ).
Definition in Zeile 727 der Datei camera_common.h .
int(* get_number_of_cameras)(void) |
get_number_of_cameras:
Gibt die Anzahl der Kamerageräte zurück, auf die über das Kameramodul zugegriffen werden kann. Die Kamerageräte sind von 0 bis N-1 nummeriert, wobei N der Wert ist, der von diesem Aufruf zurückgegeben wird. Der Name des Kamerageräts für open() ist einfach die in einen String umgewandelte Zahl. „0“ für Kamera-ID 0 und „1“ für Kamera-ID 1.
Versionsinformationen (basierend auf „camera_module_t.common.module_api_version“):
CAMERA_MODULE_API_VERSION_2_3 oder niedriger:
Der Wert hier muss statisch sein und darf sich nach dem ersten Aufruf dieser Methode nicht ändern.
CAMERA_MODULE_API_VERSION_2_4 oder höher:
Der Wert muss statisch sein und nur integrierte Kameras mit den Kameraausrichtungen CAMERA_FACING_BACK oder CAMERA_FACING_FRONT ( camera_info.facing ) zählen. Die HAL darf die externen Kameras ( camera_info.facing == CAMERA_FACING_EXTERNAL) nicht in den Rückgabewert dieses Aufrufs aufnehmen. Frameworks verwenden den Rückruf „camera_device_status_change“, um die Anzahl der externen Kameras zu verwalten.
Definition in Zeile 701 der Datei camera_common.h .
void(* get_vendor_tag_ops)(vendor_tag_ops_t *ops) |
get_vendor_tag_ops:
Methoden zum Abrufen von Informationen zu Metadaten-Tags von Anbietererweiterungen Die HAL sollte alle Methoden für den Vorgang mit Anbieter-Tags ausfüllen oder „ops“ unverändert lassen, wenn keine Anbieter-Tags definiert sind.
Die hier verwendete Struktur „vendor_tag_ops“ ist in „system/media/camera/include/system/vendor_tags.h“ definiert.
Versionsinformationen (basierend auf „camera_module_t.common.module_api_version“):
CAMERA_MODULE_API_VERSION_1_x/2_0/2_1: Wird vom HAL-Modul nicht bereitgestellt. Das Framework ruft diese Funktion möglicherweise nicht auf.
CAMERA_MODULE_API_VERSION_2_2: Kann vom Framework aufgerufen werden.
Definition in Zeile 778 der Datei camera_common.h .
int(* init)() |
init:
Diese Methode wird vom Kameradienst aufgerufen, bevor andere Methoden aufgerufen werden, direkt nachdem die HAL-Bibliothek der Kamera erfolgreich geladen wurde. Sie kann vom HAL-Modul als NULL belassen werden, wenn keine Initialisierung erforderlich ist.
Sie kann von HAL-Implementierungen zur Ausführung der Initialisierung und anderer einmaliger Vorgänge verwendet werden.
Versionsinformationen (basierend auf „camera_module_t.common.module_api_version“):
CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: Wird vom HAL-Modul nicht bereitgestellt. Diese Funktion wird vom Framework nicht aufgerufen.
CAMERA_MODULE_API_VERSION_2_4: Wenn nicht NULL, wird diese Methode vom Framework immer einmal nach dem Laden des HAL-Moduls aufgerufen, bevor eine andere HAL-Modulmethode aufgerufen wird.
Rückgabewerte:
0: Bei einem erfolgreichen Vorgang.
-ENODEV: Die Initialisierung kann aufgrund eines internen Fehlers nicht abgeschlossen werden. Es muss davon ausgegangen werden, dass sich die HAL in einem nicht funktionsfähigen Zustand befindet.
Definition in Zeile 909 der Datei 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:
Öffnen Sie ein bestimmtes älteres HAL-Gerät für Kameras, wenn dieses HAL-Modul für Kameras mehrere HAL-API-Versionen für Geräte unterstützt. Wenn das Kameramodul beispielsweise sowohl die Geräte-API CAMERA_DEVICE_API_VERSION_1_0 als auch CAMERA_DEVICE_API_VERSION_3_2 für dieselbe Kamera-ID unterstützt, kann das Framework diese Funktion aufrufen, um das Kameragerät als CAMERA_DEVICE_API_VERSION_1_0-Gerät zu öffnen.
Diese Methode ist optional. Ein HAL-Modul für Kameras muss nicht mehr als eine HAL-Version pro Gerät unterstützen. Solche Module können für alle Aufrufe dieser Methode -ENOSYS zurückgeben. Für alle älteren HAL-Geräte-API-Versionen, die nicht unterstützt werden, wird möglicherweise -EOPNOTSUPP zurückgegeben. In diesen Fällen wird stattdessen die normale open()-Methode (common.methods->open) vom Framework verwendet.
Versionsinformationen (basierend auf „camera_module_t.common.module_api_version“):
CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2: Wird vom HAL-Modul nicht bereitgestellt. Diese Funktion wird vom Framework nicht aufgerufen.
CAMERA_MODULE_API_VERSION_2_3: Kann vom Framework aufgerufen werden.
Rückgabewerte:
0: Wenn die Kamera erfolgreich geöffnet wurde.
-ENOSYS: Diese Methode wird nicht unterstützt.
-EOPNOTSUPP: Die angeforderte HAL-Version wird von dieser Methode nicht unterstützt.
-EINVAL: Die Eingabeargumente sind ungültig, d.h. die ID und/oder das Modul sind ungültig.
-EBUSY: Das Kameragerät wurde bereits für diese Kamera-ID geöffnet (mit dieser Methode oder der Methode „common.methods->open“), unabhängig von der HAL-Version des Geräts, mit der es geöffnet wurde.
-EUSERS: Die maximale Anzahl von Kameras, die gleichzeitig geöffnet werden können, wurde bereits geöffnet, entweder mit dieser Methode oder mit der Methode „common.methods->open“.
Definition in Zeile 824 der Datei camera_common.h .
void* reserved[5] |
Definition in Zeile 912 der Datei camera_common.h
int(* set_callbacks)(const camera_module_callbacks_t *callbacks) |
set_callbacks:
Geben Sie dem HAL-Modul Verweise auf Rückruffunktionen an, um das Framework über asynchrone Kameramodulereignisse zu informieren. Das Framework ruft diese Funktion einmal nach dem ersten Laden des HAL-Moduls der Kamera auf, nachdem die Methode get_number_of_cameras() zum ersten Mal aufgerufen wurde und vor allen anderen Aufrufen des Moduls.
Versionsinformationen (basierend auf „camera_module_t.common.module_api_version“):
CAMERA_MODULE_API_VERSION_1_0, CAMERA_MODULE_API_VERSION_2_0:
Wird nicht vom HAL-Modul bereitgestellt. Das Framework ruft diese Funktion möglicherweise nicht auf.
CAMERA_MODULE_API_VERSION_2_1:
Gültig für den Aufruf durch das Framework.
Rückgabewerte:
0: Bei erfolgreichem Vorgang
-ENODEV: Der Vorgang kann aufgrund eines internen Fehlers nicht abgeschlossen werden.
-EINVAL: Die Eingabeargumente sind ungültig, d. h. die Rückruffunktionen sind null.
Definition in Zeile 758 der Datei camera_common.h .
int(* set_torch_mode)(const char *camera_id, bool enabled) |
set_torch_mode:
Aktivieren oder deaktivieren Sie den Taschenlampenmodus des Blitzes, der mit einer bestimmten Kamera-ID verknüpft ist. Wenn der Vorgang erfolgreich war, muss HAL den LED-Status des Frameworks benachrichtigen, indem camera_module_callbacks.torch_mode_status_change() mit dem neuen Status aufgerufen wird.
Das Kameragerät hat beim Zugriff auf den Blitz eine höhere Priorität. Bei Ressourcenkonflikten, z. B. wenn „open()“ zum Öffnen eines Kamerageräts aufgerufen wird, muss das HAL-Modul das Framework über camera_module_callbacks.torch_mode_status_change() darüber informieren, dass der Taschenlampenmodus deaktiviert wurde und der Status des Taschenlampenmodus zu TORCH_MODE_STATUS_NOT_AVAILABLE geworden ist. Wenn die Ressourcen zum Aktivieren des Taschenlampenmodus wieder verfügbar sind, muss das HAL-Modul das Framework über camera_module_callbacks.torch_mode_status_change() darüber informieren, dass der Status des Taschenlampenmodus zu TORCH_MODE_STATUS_AVAILABLE_OFF geworden ist, damit set_torch_mode() aufgerufen werden kann.
Wenn das Framework set_torch_mode() aufruft, um den Taschenlampenmodus eines Blitzes zu aktivieren, und HAL nicht mehrere Taschenlampenmodi gleichzeitig aktivieren kann, sollte HAL den Taschenlampenmodus deaktivieren, der durch einen vorherigen Aufruf von set_torch_mode() aktiviert wurde, und das Framework darüber informieren, dass der Status des Taschenlampenmodus dieses Blitzes jetzt TORCH_MODE_STATUS_AVAILABLE_OFF ist.
Versionsinformationen (basierend auf „camera_module_t.common.module_api_version“):
CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: Wird vom HAL-Modul nicht bereitgestellt. Diese Funktion wird vom Framework nicht aufgerufen.
CAMERA_MODULE_API_VERSION_2_4: Kann vom Framework aufgerufen werden.
Rückgabewerte:
0: Bei einem erfolgreichen Vorgang.
-ENOSYS: Das Kameragerät unterstützt diesen Vorgang nicht. Sie wird nur zurückgegeben, wenn android.flash.info.available den Wert „false“ hat.
-EBUSY: Das Kameragerät wird bereits verwendet.
-EUSERS: Die Ressourcen, die zum Aktivieren des Taschenlampenmodus erforderlich sind, sind nicht verfügbar. Normalerweise liegt das daran, dass andere Kamerageräte die Ressourcen belegen, sodass die Verwendung des Blitzes nicht möglich ist.
-EINVAL: camera_id ist ungültig.
Definition in Zeile 878 der Datei camera_common.h
Die Dokumentation für diese Struktur wurde aus der folgenden Datei generiert:
- hardware/libhardware/include/hardware/ camera_common.h