Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

camera_module Strukturreferenz

camera_module Strukturreferenz

#include < camera_common.h >

Datenfelder

hw_module_t gemeinsames
int(* get_number_of_cameras )(nichtig)
int(* get_camera_info )(int camera_id, struct camera_info *info)
int(* set_callbacks )(const camera_module_callbacks_t *Rückrufe)
Leere(* 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 aktiviert)
int(* initiieren )()
Leere * reserviert [5]

detaillierte Beschreibung

Definition in Zeile 646 der Datei camera_common.h .

Felddokumentation

hw_module_t gemeinsam

Gängige Methoden des Kameramoduls. Dies muss das erste Mitglied von camera_module sein , da Benutzer dieser Struktur in Kontexten, in denen bekannt ist, dass hw_module_t auf ein camera_module verweist, einen Zeiger von hw_module_t auf camera_module umwandeln.

Die Rückgabewerte für common.methods->open für camera_module sind:

0: Bei erfolgreichem Öffnen des Kamerageräts.

-ENODEV: Das Kameragerät kann aufgrund eines internen Fehlers nicht geöffnet werden.

-EINVAL: Die Eingabeargumente sind ungültig, dh die ID ist ungültig und/oder das Modul ist 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, als es geöffnet wurde.

-EUSERS: Die maximale Anzahl von Kamerageräten, die gleichzeitig geöffnet werden können, wurde bereits geöffnet, entweder mit dieser Methode oder der open_legacy-Methode.

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 können sich für ein Kameragerät nicht ändern.

Rückgabewerte:

0: Bei erfolgreicher Operation

-ENODEV: Die Informationen können aufgrund eines internen Fehlers nicht bereitgestellt werden.

-EINVAL: Die Eingabeargumente sind ungültig, dh die ID ist ungültig und/oder das Modul ist ungültig.

Versionsinformationen (basierend auf camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_2_4 oder höher:

Wenn eine Kamera getrennt wird, wird ihre Kamera-ID ungültig. Wenn Sie diese Methode mit dieser ungültigen Kamera-ID aufrufen, erhalten Sie -EINVAL und NULL statische Metadaten der Kamera ( 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 von diesem Aufruf zurückgegebene Wert ist. Der Name des Kamerageräts für open() ist einfach die in einen String umgewandelte Zahl. Das heißt, „0“ für Kamera-ID 0, „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 kann sich nach dem ersten Aufruf dieser Methode nicht ändern.

CAMERA_MODULE_API_VERSION_2_4 oder höher:

Der Wert hier muss statisch sein und darf nur eingebaute Kameras zählen, die CAMERA_FACING_BACK oder CAMERA_FACING_FRONT Kameraausrichtungswerte haben ( camera_info.facing ). Die HAL darf die externen Kameras ( camera_info.facing == CAMERA_FACING_EXTERNAL) nicht in den Rückgabewert dieses Aufrufs aufnehmen. Frameworks verwendet den Rückruf camera_device_status_change, um die Anzahl externer 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:

Abrufen von Methoden zum Abfragen von Metadaten-Tag-Informationen für Anbietererweiterungen. Die HAL sollte alle Vendor-Tag-Betriebsmethoden ausfüllen oder Ops unverändert lassen, wenn keine Vendor-Tags definiert sind.

Die hier verwendete Vendor_tag_ops-Struktur ist definiert in: system/media/camera/include/system/vendor_tags.h

Versionsinformationen (basierend auf camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1: Nicht vom HAL-Modul bereitgestellt. Framework darf diese Funktion nicht aufrufen.

CAMERA_MODULE_API_VERSION_2_2: Gültig, um vom Framework aufgerufen zu werden.

Definition in Zeile 778 der Datei camera_common.h .

int(* init)()

drin:

Diese Methode wird vom Kameradienst aufgerufen, bevor andere Methoden aufgerufen werden, direkt nachdem die Kamera-HAL-Bibliothek erfolgreich geladen wurde. Es kann vom HAL-Modul auf NULL belassen werden, wenn keine Initialisierung erforderlich ist.

Es kann von HAL-Implementierungen verwendet werden, um Initialisierungen und andere einmalige Operationen durchzuführen.

Versionsinformationen (basierend auf camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_x/2_0/2_1/2_2/2_3: Nicht vom HAL-Modul bereitgestellt. Framework wird diese Funktion nicht aufrufen.

CAMERA_MODULE_API_VERSION_2_4: Wenn nicht NULL, wird es immer einmal vom Framework aufgerufen, nachdem das HAL-Modul geladen wurde, bevor eine andere HAL-Modulmethode aufgerufen wird.

Rückgabewerte:

0: Bei erfolgreicher Operation.

-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 Legacy-Kamera-HAL-Gerät, wenn mehrere Geräte-HAL-API-Versionen von diesem Kamera-HAL-Modul unterstützt werden. Wenn das Kameramodul beispielsweise sowohl die Geräte-API CAMERA_DEVICE_API_VERSION_1_0 als auch die Geräte-API CAMERA_DEVICE_API_VERSION_3_2 für dieselbe Kamera-ID unterstützt, kann Framework diese Funktion aufrufen, um das Kameragerät als Gerät CAMERA_DEVICE_API_VERSION_1_0 zu öffnen.

Dies ist eine optionale Methode. Ein Kamera-HAL-Modul muss nicht mehr als eine Geräte-HAL-Version pro Gerät unterstützen, und solche Module können -ENOSYS für alle Aufrufe dieser Methode zurückgeben. Für alle älteren HAL-Geräte-API-Versionen, die nicht unterstützt werden, kann es -EOPNOTSUPP zurückgeben. Wenn die oben genannten Fälle auftreten, 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: Nicht vom HAL-Modul bereitgestellt. Framework wird diese Funktion nicht aufrufen.

CAMERA_MODULE_API_VERSION_2_3: Gültig, um vom Framework aufgerufen zu werden.

Rückgabewerte:

0: Bei erfolgreichem Öffnen des Kamerageräts.

-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, dh die ID ist ungültig und/oder das Modul ist 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, als es geöffnet wurde.

-EUSERS: Die maximale Anzahl von Kamerageräten, die gleichzeitig geöffnet werden können, wurde bereits geöffnet, entweder mit dieser Methode oder der Methode common.methods->open.

Definition in Zeile 824 der Datei camera_common.h .

ungültig* reserviert[5]

Definition in Zeile 912 der Datei camera_common.h .

int(* set_callbacks)(const camera_module_callbacks_t *callbacks)

set_callbacks:

Bereitstellen von Callback-Funktionszeigern für das HAL-Modul, um das Framework über asynchrone Kameramodulereignisse zu informieren. Das Framework ruft diese Funktion einmal nach dem ersten Laden des Kamera-HAL-Moduls auf, nachdem die get_number_of_cameras()- Methode zum ersten Mal aufgerufen wurde, und vor allen anderen Aufrufen des Moduls.

Versionsinformationen (basierend auf camera_module_t.common.module_api_version):

KAMERA_MODULE_API_VERSION_1_0, KAMERA_MODULE_API_VERSION_2_0:

Nicht vom HAL-Modul bereitgestellt. Framework darf diese Funktion nicht aufrufen.

CAMERA_MODULE_API_VERSION_2_1:

Gültig, um vom Framework aufgerufen zu werden.

Rückgabewerte:

0: Bei erfolgreicher Operation

-ENODEV: Der Vorgang kann aufgrund eines internen Fehlers nicht abgeschlossen werden.

-EINVAL: Die Eingabeargumente sind ungültig, dh die Callbacks sind null

Definition in Zeile 758 der Datei camera_common.h .

int(* set_torch_mode)(const char *camera_id, bool aktiviert)

set_torch_mode:

Schalten Sie den Taschenlampenmodus des Blitzgeräts ein oder aus, das einer bestimmten Kamera-ID zugeordnet ist. Wenn die Operation erfolgreich ist, muss HAL den Fackelzustand des Frameworks durch Aufrufen von camera_module_callbacks.torch_mode_status_change() mit dem neuen Zustand benachrichtigen.

Das Kameragerät hat eine höhere Priorität beim Zugriff auf das Blitzgerät. Wenn Ressourcenkonflikte auftreten, 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() benachrichtigen, dass der Taschenlampenmodus ausgeschaltet wurde und der Taschenlampenmodusstatus TORCH_MODE_STATUS_NOT_AVAILABLE geworden ist. Wenn Ressourcen zum Einschalten des Fackelmodus wieder verfügbar werden, muss das HAL-Modul das Framework über camera_module_callbacks.torch_mode_status_change() benachrichtigen, dass der Status des Fackelmodus 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 einer Blitzeinheit einzuschalten, und HAL nicht mehrere Taschenlampenmodi gleichzeitig eingeschaltet lassen kann, sollte HAL den Taschenlampenmodus ausschalten, der durch einen vorherigen Aufruf von set_torch_mode() eingeschaltet wurde, und das Framework benachrichtigen dass der Taschenlampenmodusstatus dieses Blitzgeräts TORCH_MODE_STATUS_AVAILABLE_OFF geworden 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: Nicht vom HAL-Modul bereitgestellt. Framework wird diese Funktion nicht aufrufen.

CAMERA_MODULE_API_VERSION_2_4: Gültig, um vom Framework aufgerufen zu werden.

Rückgabewerte:

0: Bei erfolgreicher Operation.

-ENOSYS: Das Kameragerät unterstützt diesen Vorgang nicht. Es wird nur dann zurückgegeben, wenn android.flash.info.available falsch ist.

-EBUSY: Das Kameragerät wird bereits verwendet.

-EUSERS: Die zum Einschalten des Taschenlampenmodus erforderlichen Ressourcen sind nicht verfügbar, normalerweise weil andere Kamerageräte die Ressourcen bereithalten, um die Verwendung des Blitzgeräts zu verhindern.

-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: