camera3_stream-Strukturreferenz

camera3_stream-Strukturreferenz

#include < camera3.h >

Datenfelder

int  stream_type
 
uint32_t  width
 
uint32_t  height
 
int  format
 
uint32_t  Nutzung
 
uint32_t  max_buffers
 
void *  priv
 
android_dataspace_t  data_space
 
int  Drehung
 
void *  reserved [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 Format definiert. Zusätzlich wird er von der HAL mit den Gralloc-Nutzungsflags und der maximalen Anzahl von In-Flight-Puffern definiert.

Die Streamstrukturen gehören dem Framework, aber Verweise auf einen camera3_stream , der über „configure_streams()“ an die HAL übergeben wird, sind bis zum Ende des ersten nachfolgenden „configure_streams()“-Aufrufs gültig, der nicht diesen camera3_stream als Argument enthält, oder bis zum Ende des Aufrufs von „close()“.

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

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

Der Endpunkt des Streams ist für das HAL-Gerät der Kamera nicht sichtbar. In DEVICE_API_VERSION_3_1 wurde dies geändert, um Nutzungsflags für Verbraucher in Streams zu teilen, in denen die Kamera ein Producer ist (OUTPUT- und BIDIRECTIONAL-Streamtypen). Weitere Informationen finden Sie unten im Feld „Nutzung“.

Definition in Zeile 1523 der Datei camera3.h .

Felddokumentation

android_dataspace_t data_space

Ein Feld, das den Inhalt des Buffers beschreibt. Die Format- und Pufferdimensionen definieren das Speicherlayout und die Struktur der Stream-Puffer, während „dataSpace“ die Bedeutung der Daten im Puffer definiert.

Bei den meisten Formaten definiert „dataSpace“ den Farbraum der Bilddaten. Bei einigen Formaten gibt dataSpace außerdem an, ob bild- oder tiefenbasierte Daten angefordert werden. Details zu den Formaten und gültigen dataSpace-Werten für jedes Format finden Sie unter system/core/include/system/graphics.h.

Versionsinformationen:

< CAMERA_DEVICE_API_VERSION_3_3:

Nicht definiert und sollte nicht darauf zugegriffen werden. Es wird davon ausgegangen, dass dataSpace HAL_DATASPACE_UNKNOWN ist und der entsprechende Farbraum usw. anhand der Nutzungsflags und des Formats bestimmt werden sollte.

= CAMERA_DEVICE_API_VERSION_3_3:

Wird immer vom Kameradienst festgelegt. HAL muss diesen Datenbereich verwenden, um den Stream für den richtigen Farbraum zu konfigurieren oder zwischen Farb- und Tiefenausgaben auszuwählen, sofern unterstützt. Die Datenraumwerte sind die alten Definitionen in graphics.h.

>= CAMERA_DEVICE_API_VERSION_3_4:

Wird immer vom Kameradienst festgelegt. HAL muss diesen Datenbereich verwenden, um den Stream für den richtigen Farbraum zu konfigurieren oder zwischen Farb- und Tiefenausgaben auszuwä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 gralloc-Modul der Plattform ein Format basierend auf den Nutzungsflags aus, die vom Kameragerät und dem anderen Endpunkt des Streams bereitgestellt werden.

<= CAMERA_DEVICE_API_VERSION_3_1:

Das HAL-Gerät der Kamera muss die Puffer prüfen, die ihm im nachfolgenden Aufruf von register_stream_buffers() übergeben werden, um bei Bedarf die implementierungsspezifischen Formatdetails abzurufen.

>= CAMERA_DEVICE_API_VERSION_3_2:

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

Definition in Zeile 1565 der Datei camera3.h .

uint32_t height

Die Höhe der Puffer in diesem Stream in Pixeln

Definition in Zeile 1542 der Datei camera3.h .

uint32_t max_buffers

Die maximale Anzahl von Puffern, die das HAL-Gerät möglicherweise gleichzeitig aus der Warteschlange entfernen muss. Das HAL-Gerät darf nicht mehr laufende Buffers aus diesem Stream haben als dieser Wert.

Definition in Zeile 1608 der Datei camera3.h .

void* priv

Ein Handle zu HAL-privaten Informationen für den Stream. Wird nicht vom Framework-Code geprüft.

Definition in Zeile 1614 der Datei camera3.h .

void* reserved[7]

Definition in Zeile 1677 der Datei camera3.h .

int-Rotation

Die erforderliche Ausgabedrehung des Streams, einer der Werte „camera3_stream_rotation_t“. Dieser Wert muss von HAL zusammen mit der Streambreite und -höhe geprüft werden. Wenn die Drehung beispielsweise 90 Grad beträgt und die Streambreite und -höhe jeweils 720 und 1.280 Pixel betragen, stellt der Kameradienst Puffer mit einer Größe von 720 × 1.280 bereit. HAL sollte dann ein Bild mit einer Größe von 1.280 × 720 aufnehmen und das Bild um 90 Grad gegen den Uhrzeigersinn drehen. Das Rotationsfeld hat keine Funktion, wenn der Streamtyp „input“ ist. Die HAL der Kamera 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:

Wird immer vom Kameradienst festgelegt. HAL muss dieses Feld während der Streamkonfiguration prüfen und gibt -EINVAL zurück, wenn HAL diese Drehung nicht ausführen kann. HAL muss immer CAMERA3_STREAM_ROTATION_0 unterstützen. Ein Aufruf von „configure_streams()“ darf also nicht bei nicht unterstützter Drehung fehlschlagen, wenn das Drehfeld aller Streams CAMERA3_STREAM_ROTATION_0 ist.

Definition in Zeile 1674 der Datei camera3.h .

int stream_type

Der Typ des Streams, einer der Werte von „camera3_stream_type_t“.

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 Nutzungsflags sind in gralloc.h (GRALLOC_USAGE_*) oder in gerätespezifischen Headern definiert.

Bei Ausgabestreams sind dies die Flags für die Verwendung des Erzeugers durch die HAL. Bei Eingabestreams sind dies die Flags für die Nutzernutzung der HAL. Die Nutzungsflags des Erzeugers und des Verbrauchers werden kombiniert und dann an das HAL-Modul „gralloc“ der Plattform übergeben, um die Gralloc-Buffer für jeden Stream zuzuweisen.

Versionsinformationen:

== CAMERA_DEVICE_API_VERSION_3_0:

Wenn das Feld über „configure_streams()“ übergeben wird, ist kein Anfangswert garantiert. HAL darf dieses Feld nicht als Eingabe verwenden und muss es mit seinen Nutzungsflags überschreiben.

>= CAMERA_DEVICE_API_VERSION_3_1:

Bei „stream_type“ OUTPUT und BIDIRECTIONAL ist der Anfangswert für diese Variable, wenn sie über „configure_streams()“ übergeben wird, die Nutzungsflags des Verbrauchers. Die HAL kann diese Flags verwenden, um die Streamkonfiguration zu bestimmen. Wenn „INPUT“ als stream_type über „configure_streams()“ übergeben wird, ist der Anfangswert 0. Für alle Streams, die über „configure_streams()“ übergeben werden, muss die HAL dieses Feld mit ihren Nutzungsflags überschreiben.

Definition in Zeile 1601 der Datei camera3.h .

uint32_t width

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: