camera3_stream-Strukturreferenz

camera3_stream-Strukturreferenz

#include < camera3.h >

Datenfelder

int stream_type
uint32_t Breite
uint32_t Höhe
int Format
uint32_t Verwendung
uint32_t max_buffers
Leere * priv
android_dataspace_t data_space
int Drehung
Leere * reserviert [7]

detaillierte Beschreibung

camera3_stream_t:

Ein Handle für einen einzelnen Kamera-Eingabe- oder Ausgabestream. Ein Stream wird vom Framework durch seine Pufferauflösung und sein Pufferformat und zusätzlich durch die HAL mit den gralloc-Nutzungsflags und der maximalen Pufferanzahl im Flug definiert.

Die Stream-Strukturen sind Eigentum des Frameworks, aber Zeiger auf einen camera3_stream, der von configure_streams() an die HAL übergeben wird, sind bis zum Ende des ersten nachfolgenden configure_streams()-Aufrufs gültig, der diesen camera3_stream nicht als Argument enthält, oder bis zum Ende von der close()-Aufruf.

Alle vom camera3_stream -Framework gesteuerten Mitglieder sind unveränderlich, sobald camera3_stream an configure_streams() übergeben wird. Der HAL darf während eines configure_streams()-Aufrufs nur die HAL-gesteuerten Parameter ändern, mit Ausnahme des Inhalts des privaten Zeigers.

Wenn ein Aufruf von configure_streams() einen nicht schwerwiegenden Fehler zurückgibt, bleiben alle aktiven Streams gültig, als ob configure_streams() nicht aufgerufen worden wäre.

Der Endpunkt des Streams ist für das Kamera-HAL-Gerät nicht sichtbar. In DEVICE_API_VERSION_3_1 wurde dies geändert, um Consumer-Nutzungsflags für Streams zu teilen, bei denen die Kamera ein Produzent ist (Stream-Typen OUTPUT und BIDIRECTIONAL), siehe das Verwendungsfeld unten.

Definition in Zeile 1523 der Datei camera3.h .

Felddokumentation

android_dataspace_t data_space

Ein Feld, das den Inhalt des Puffers beschreibt. Das Format und die Pufferabmessungen definieren das Speicherlayout und die Struktur der Stream-Puffer, während dataSpace die Bedeutung der Daten innerhalb des Puffers definiert.

Bei den meisten Formaten definiert dataSpace den Farbraum der Bilddaten. Darüber hinaus gibt dataSpace bei einigen Formaten an, ob bild- oder tiefenbasierte Daten angefordert werden. Einzelheiten zu Formaten und gültigen DataSpace-Werten für jedes Format finden Sie unter system/core/include/system/graphics.h.

Versionsinformation:

< CAMERA_DEVICE_API_VERSION_3_3:

Nicht definiert und sollte nicht aufgerufen werden. Es sollte davon ausgegangen werden, dass dataSpace HAL_DATASPACE_UNKNOWN ist, und der entsprechende Farbraum usw. sollte anhand der Verwendungsflags und des Formats bestimmt werden.

= CAMERA_DEVICE_API_VERSION_3_3:

Wird immer vom Kameradienst festgelegt. HAL muss diesen DataSpace verwenden, um den Stream auf den richtigen Farbraum zu konfigurieren oder um zwischen Farb- und Tiefenausgaben zu wählen, sofern unterstützt. Die Datenraumwerte sind die Legacy-Definitionen in Graphics.h

>= CAMERA_DEVICE_API_VERSION_3_4:

Wird immer vom Kameradienst festgelegt. HAL muss diesen DataSpace verwenden, um den Stream auf den richtigen Farbraum zu konfigurieren oder um zwischen Farb- und Tiefenausgaben zu wählen, sofern unterstützt. Die Datenraumwerte werden mithilfe der V0-Datenraumdefinitionen in Graphics.h festgelegt

Definition in Zeile 1648 der Datei camera3.h .

int-Format

Das Pixelformat für die Puffer in diesem Stream. Format ist ein Wert aus der Liste HAL_PIXEL_FORMAT_* in system/core/include/system/graphics.h oder aus gerätespezifischen Headern.

Wenn HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED verwendet wird, wählt das Plattform-Gralloc-Modul ein Format basierend auf den vom Kameragerät und dem anderen Endpunkt des Streams bereitgestellten Nutzungsflags aus.

<= CAMERA_DEVICE_API_VERSION_3_1:

Das Kamera-HAL-Gerät muss die Puffer überprüfen, die ihm im nachfolgenden Aufruf von register_stream_buffers() übergeben werden, um bei Bedarf die Implementierungsspezifischen Formatdetails zu erhalten.

>= CAMERA_DEVICE_API_VERSION_3_2:

register_stream_buffers() wird vom Framework nicht aufgerufen, daher sollte die HAL den ISP und die Sensorpipeline ausschließlich auf der Grundlage der Größen, Nutzungsflags und Formate für die konfigurierten Streams konfigurieren.

Definition in Zeile 1565 der Datei camera3.h .

uint32_t Höhe

Die Höhe der Puffer in diesem Stream in Pixel

Definition in Zeile 1542 der Datei camera3.h .

uint32_t max_buffers

Die maximale Anzahl an Puffern, die das HAL-Gerät gleichzeitig aus der Warteschlange entfernen muss. Das HAL-Gerät darf nicht mehr Puffer in der Übertragung von diesem Stream haben als dieser Wert.

Definition in Zeile 1608 der Datei camera3.h .

void* priv

Ein Handle für HAL-private Informationen für den Stream. Wird nicht vom Framework-Code überprüft.

Definition in Zeile 1614 der Datei camera3.h .

void* reserviert[7]

Definition in Zeile 1677 der Datei camera3.h .

int Rotation

Die erforderliche Ausgaberotation des Streams, einer der camera3_stream_rotation_t-Werte. Dies muss zusammen mit der Bachbreite und -höhe von HAL überprüft werden. Wenn die Drehung beispielsweise 90 Grad beträgt und die Stream-Breite und -Höhe 720 bzw. 1280 beträgt, stellt der Kameradienst Puffer der Größe 720 x 1280 bereit, und HAL sollte ein 1280 x 720-Bild erfassen und das Bild um 90 Grad gegen den Uhrzeigersinn drehen. Das Rotationsfeld ist nicht aktiv, wenn der Stream-Typ eingegeben wird. Kamera-HAL muss das Rotationsfeld für einen Eingabestream ignorieren.

<= CAMERA_DEVICE_API_VERSION_3_2:

Nicht definiert und darf nicht aufgerufen werden. HAL darf keine Drehung auf Ausgabebilder anwenden.

>= CAMERA_DEVICE_API_VERSION_3_3:

Immer vom Kameradienst eingestellt. HAL muss dieses Feld während der Stream-Konfiguration überprüfen und gibt -EINVAL zurück, wenn HAL eine solche Rotation nicht durchführen kann. HAL muss immer CAMERA3_STREAM_ROTATION_0 unterstützen, daher darf ein Aufruf von configure_streams() nicht wegen nicht unterstützter Rotation fehlschlagen, wenn das Rotationsfeld aller Streams CAMERA3_STREAM_ROTATION_0 ist.

Definition in Zeile 1674 der Datei camera3.h .

int stream_type

Der Typ des Streams, einer der camera3_stream_type_t-Werte.

Definition in Zeile 1532 der Datei camera3.h .

uint32_t-Nutzung

Die Gralloc-Nutzungsflags für diesen Stream, wie von der HAL benötigt. Die Verwendungsflags werden in gralloc.h (GRALLOC_USAGE_*) oder in gerätespezifischen Headern definiert.

Für Ausgabestreams sind dies die Producer-Nutzungsflags der HAL. Für Eingabeströme sind dies die Verbrauchernutzungsflags der HAL. Die Nutzungsflags vom Produzenten und vom Konsumenten werden kombiniert und dann an das Gralloc-HAL-Modul der Plattform übergeben, um die Gralloc-Puffer für jeden Stream zuzuweisen.

Versionsinformation:

== CAMERA_DEVICE_API_VERSION_3_0:

Bei Übergabe über configure_streams() ist kein Anfangswert garantiert. HAL darf dieses Feld nicht als Eingabe verwenden und muss dieses Feld mit seinen Verwendungsflags überschreiben.

>= CAMERA_DEVICE_API_VERSION_3_1:

Für stream_type OUTPUT und BIDIRECTIONAL ist der Anfangswert bei Übergabe über configure_streams() die Nutzungsflags des Verbrauchers. Der HAL kann diese Verbraucherflags verwenden, um über die Stream-Konfiguration zu entscheiden. Für stream_type INPUT ist der Anfangswert bei Übergabe über configure_streams() 0. Für alle Streams, die über configure_streams() übergeben werden, muss die HAL dieses Feld mit seinen Verwendungsflags überschreiben.

Definition in Zeile 1601 der Datei camera3.h .

uint32_t Breite

Die Breite der Puffer in diesem Stream in Pixeln

Definition in Zeile 1537 der Datei camera3.h .


Die Dokumentation für diese Struktur wurde aus der folgenden Datei generiert:
  • hardware/libhardware/include/hardware/ camera3.h