camera3_stream Strukturreferenz

camera3_stream Strukturreferenz

#include < camera3.h >

Datenfelder

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

detaillierte Beschreibung

camera3_stream_t:

Ein Handle für einen einzelnen Kameraeingangs- oder -ausgangsstream. Ein Stream wird durch das Framework durch seine Pufferauflösung und sein Format und zusätzlich durch die HAL mit den Gralloc-Nutzungs-Flags und der maximalen In-Flight-Pufferanzahl definiert.

Die Stream-Strukturen gehören dem Framework, 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. Die HAL darf nur die 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 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-Nutzungs-Flags für Streams zu teilen, bei denen die Kamera ein Produzent ist (Stream-Typen OUTPUT und BIDIRECTIONAL), siehe das Nutzungsfeld 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 Pufferdimensionen 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 für einige Formate 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. dataSpace sollte als HAL_DATASPACE_UNKNOWN angenommen werden, und der geeignete Farbraum usw. sollte aus den Verwendungs-Flags und dem Format bestimmt werden.

= CAMERA_DEVICE_API_VERSION_3_3:

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

>= CAMERA_DEVICE_API_VERSION_3_4:

Wird immer vom Kameradienst eingestellt. HAL muss diesen dataSpace verwenden, um den Stream für den richtigen Farbraum zu konfigurieren oder um zwischen Farb- und Tiefenausgaben auszuwählen, falls 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 Verwendungs-Flags aus, die von der Kameravorrichtung und dem anderen Endpunkt des Streams bereitgestellt werden.

<= 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 gegebenenfalls die implementierungsspezifischen Formatdetails zu erhalten.

>= CAMERA_DEVICE_API_VERSION_3_2:

register_stream_buffers() wird nicht vom Framework aufgerufen, daher sollte die HAL den ISP und die Sensorpipeline nur basierend auf den Größen, Verwendungsflags und Formaten 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 von Puffern, die das HAL-Gerät möglicherweise gleichzeitig aus der Warteschlange entfernt haben muss. Das HAL-Gerät darf während des Flugs von diesem Stream nicht mehr Puffer als diesen Wert haben.

Definition in Zeile 1608 der Datei camera3.h .

ungültig* priv

Ein Handle für HAL-private Informationen für den Stream. Wird nicht durch den Rahmencode geprüft.

Definition in Zeile 1614 der Datei camera3.h .

ungültig* reserviert[7]

Definition in Zeile 1677 der Datei camera3.h .

int-Rotation

Die erforderliche Ausgangsrotation des Streams, einer der camera3_stream_rotation_t-Werte. Dies muss von HAL zusammen mit der Strombreite und -höhe überprüft werden. Wenn die Drehung beispielsweise 90 Grad beträgt und die Stream-Breite und -Höhe 720 bzw. 1280 betragen, liefert der Kameradienst Puffer der Größe 720 x 1280, und HAL sollte ein 1280 x 720-Bild aufnehmen und das Bild um 90 Grad gegen den Uhrzeigersinn drehen. Das Rotationsfeld ist no-op, wenn der Stream-Typ eingegeben wird. Die Kamera HAL muss das Rotationsfeld für einen Eingangsstrom 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 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 configure_streams()-Aufruf 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-Verwendungs-Flags für diesen Stream, wie von der HAL benötigt. Die Verwendungsflags sind in gralloc.h (GRALLOC_USAGE_*) oder in gerätespezifischen Headern definiert.

Für Ausgabeströme sind dies die HAL-Producer-Usage-Flags. Für Eingabeströme sind dies die Consumer Usage Flags von HAL. Die Verwendungs-Flags von dem Erzeuger und dem Verbraucher werden miteinander kombiniert und dann an das gralloc-HAL-Modul der Plattform weitergegeben, um die gralloc-Puffer für jeden Strom zuzuweisen.

Versionsinformation:

== CAMERA_DEVICE_API_VERSION_3_0:

Kein garantierter Anfangswert bei Übergabe über configure_streams(). HAL darf dieses Feld nicht als Eingabe verwenden und muss dieses Feld mit seinen Verwendungs-Flags überschreiben.

>= CAMERA_DEVICE_API_VERSION_3_1:

Für stream_type OUTPUT und BIDIRECTIONAL, wenn sie über configure_streams() übergeben werden, ist der Anfangswert davon die Verwendungs-Flags des Verbrauchers. Die HAL kann diese Verbraucher-Flags verwenden, um über die Stream-Konfiguration zu entscheiden. Für stream_type INPUT, wenn es über configure_streams() übergeben wird, ist der Anfangswert davon 0. Für alle Streams, die über configure_streams() übergeben werden, muss die HAL dieses Feld mit seinen Verwendungs-Flags ü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