camera_module-Strukturreferenz

camera_module-Strukturreferenz

#include < camera_common.h >

Datenfelder

hw_module_t gemeinsam
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)
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(* drin )()
Leere * reserviert [5]

detaillierte Beschreibung

Definition in Zeile 646 der Datei camera_common.h .

Felddokumentation

hw_module_t allgemein

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 hw_module_t auf einen camera_module- Zeiger umwandeln.

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

0: Bei einem erfolgreichen Ö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 (mithilfe dieser Methode oder open_legacy), unabhängig von der Geräte-HAL-Version, als es geöffnet wurde.

-EUSERS: Die maximale Anzahl an Kamerageräten, die gleichzeitig geöffnet werden können, wurde bereits geöffnet, entweder durch diese Methode oder die 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 ändern sich möglicherweise nicht für ein Kameragerät.

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, werden die statischen Metadaten der Kamera -EINVAL und NULL ( camera_info.static_camera_characteristics ) abgerufen.

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 Nummer. 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 darf 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 integrierte Kameras zählen, die über Kameraausrichtungswerte CAMERA_FACING_BACK oder CAMERA_FACING_FRONT verfügen ( camera_info.facing ). Der HAL darf die externen Kameras ( camera_info.facing == CAMERA_FACING_EXTERNAL) nicht in den Rückgabewert dieses Aufrufs einbeziehen. Frameworks verwenden 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:

Rufen Sie Methoden zum Abfragen von Metadaten-Tag-Informationen zur Anbietererweiterung ab. Die HAL sollte alle Betriebsmethoden für Anbieter-Tags ausfüllen oder die Operationen unverändert lassen, wenn keine Anbieter-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: Wird vom HAL-Modul nicht bereitgestellt. Das Framework ruft diese Funktion möglicherweise nicht auf.

CAMERA_MODULE_API_VERSION_2_2: Gültig für den Aufruf durch das Framework.

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 Vorgänge 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: Wird vom HAL-Modul nicht bereitgestellt. Framework ruft diese Funktion nicht auf.

CAMERA_MODULE_API_VERSION_2_4: Wenn nicht NULL, wird es vom Framework immer einmal 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 älteres 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 das 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 geben möglicherweise -ENOSYS für alle Aufrufe dieser Methode zurück. Für alle älteren HAL-Geräte-API-Versionen, die nicht unterstützt werden, wird möglicherweise -EOPNOTSUPP zurückgegeben. 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: Wird vom HAL-Modul nicht bereitgestellt. Framework ruft diese Funktion nicht auf.

CAMERA_MODULE_API_VERSION_2_3: Gültig für den Aufruf durch das Framework.

Rückgabewerte:

0: Bei einem erfolgreichen Ö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 (mithilfe dieser Methode oder der common.methods->open-Methode), unabhängig von der Geräte-HAL-Version, als es geöffnet wurde.

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

Definition in Zeile 824 der Datei camera_common.h .

void* reserviert[5]

Definition in Zeile 912 der Datei camera_common.h .

int(* set_callbacks)(const camera_module_callbacks_t *callbacks)

set_callbacks:

Stellen Sie Rückruffunktionszeiger für das HAL-Modul bereit, um das Framework über asynchrone Kameramodulereignisse zu informieren. Das Framework ruft diese Funktion einmal nach dem ersten Laden des Kamera-HAL-Moduls, nach dem ersten Aufruf der Methode get_number_of_cameras() und vor allen anderen Aufrufen des Moduls auf.

Versionsinformationen (basierend auf camera_module_t.common.module_api_version):

CAMERA_MODULE_API_VERSION_1_0, CAMERA_MODULE_API_VERSION_2_0:

Wird vom HAL-Modul nicht 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 erfolgreicher Operation

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

-EINVAL: Die Eingabeargumente sind ungültig, dh die Rückrufe 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 der Vorgang erfolgreich ist, muss HAL den Framework-Fackelstatus benachrichtigen, indem camera_module_callbacks.torch_mode_status_change() mit dem neuen Status aufgerufen wird.

Das Kameragerät hat eine höhere Priorität beim Zugriff auf das Blitzgerät. Wenn es Ressourcenkonflikte gibt, beispielsweise wenn open() aufgerufen wird, um ein Kameragerät zu öffnen, muss das HAL-Modul das Framework über camera_module_callbacks.torch_mode_status_change() darüber informieren, dass der Taschenlampenmodus ausgeschaltet wurde und der Taschenlampenmodusstatus zu TORCH_MODE_STATUS_NOT_AVAILABLE geändert wurde. Wenn Ressourcen zum Einschalten 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 Taschenlampenmodusstatus zu TORCH_MODE_STATUS_AVAILABLE_OFF geändert wurde, damit set_torch_mode() aufgerufen werden kann.

Wenn das Framework set_torch_mode() aufruft, um den Taschenlampenmodus eines Blitzgeräts einzuschalten, und HAL nicht mehrere Taschenlampenmodi gleichzeitig eingeschaltet lassen kann, sollte HAL den Taschenlampenmodus deaktivieren, der durch einen vorherigen set_torch_mode()- Aufruf aktiviert wurde, und das Framework benachrichtigen dass der Taschenlampenmodusstatus dieses Blitzgeräts zu TORCH_MODE_STATUS_AVAILABLE_OFF geändert wurde.

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. Framework ruft diese Funktion nicht auf.

CAMERA_MODULE_API_VERSION_2_4: Gültig für den Aufruf durch das Framework.

Rückgabewerte:

0: Bei erfolgreicher Operation.

-ENOSYS: Das Kameragerät unterstützt diesen Vorgang nicht. Es wird genau dann zurückgegeben, wenn android.flash.info.available „false“ 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 über die Ressourcen verfügen, die die Verwendung des Blitzgeräts nicht möglich machen.

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