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.
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
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.
uint32_t Höhe |
uint32_t max_buffers |
void* priv |
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.
int stream_type |
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.
uint32_t Breite |
Die Dokumentation für diese Struktur wurde aus der folgenden Datei generiert:
- hardware/libhardware/include/hardware/ camera3.h