camera3_stream_buffer Strukturreferenz

camera3_stream_buffer Strukturreferenz

#include < camera3.h >

Datenfelder

camera3_stream_t *Strom
buffer_handle_t *Puffer
intStatus
interwerben_fence
intrelease_fence

detaillierte Beschreibung

camera3_stream_buffer_t:

Ein einzelner Puffer aus einem camera3-Stream. Es enthält ein Handle für den übergeordneten Stream, das Handle für den Gralloc-Puffer selbst und Synchronisierungszäune

Der Puffer gibt nicht an, ob er für die Eingabe oder Ausgabe verwendet werden soll. Dies wird durch den übergeordneten Stream-Typ und die Übergabe des Puffers an das HAL-Gerät bestimmt.

Definition in Zeile 1755 der Datei camera3.h .

Felddokumentation

int purchase_fence

Der Erfassungssynchronisationszaun für diesen Puffer. Die HAL muss auf diesen Zaun warten, bevor sie versucht, aus diesem Puffer zu lesen oder in ihn zu schreiben.

Das Framework kann auf -1 gesetzt werden, um anzuzeigen, dass für diesen Puffer kein Warten erforderlich ist.

Wenn die HAL mit process_capture_result () einen Ausgabepuffer an das Framework zurückgibt, muss "purchase_fence" auf -1 gesetzt werden. Wenn die HAL aufgrund eines Fehlers beim Füllen eines Puffers niemals auf den Erwerb_fence wartet, muss der HAL beim Aufrufen von process_capture_result () den release_fence des Puffers als den vom Framework an ihn übergebenen Erwerb_fence festlegen. Dadurch kann das Framework auf dem Zaun warten, bevor der Puffer wiederverwendet wird.

Bei Eingabepuffern darf die HAL das Feld purchase_fence während des Aufrufs process_capture_request () nicht ändern.

> = CAMERA_DEVICE_API_VERSION_3_2:

Wenn die HAL mit process_capture_result () einen Eingabepuffer an das Framework zurückgibt, muss "purchase_fence" auf -1 gesetzt werden. Wenn die HAL aufgrund eines Fehlers niemals auf den Eingangspuffer-Erfassungszaun wartet, sollten die Synchronisierungszäune ähnlich behandelt werden, wie sie für Ausgabepuffer behandelt werden.

Definition in Zeile 1800 der Datei camera3.h .

buffer_handle_t * buffer

Das native Handle für den Puffer

Definition in Zeile 1764 der Datei camera3.h .

int release_fence

Der Release-Sync-Zaun für diesen Puffer. Die HAL muss diesen Zaun festlegen, wenn Puffer an das Framework zurückgegeben werden, oder -1 schreiben, um anzuzeigen, dass für diesen Puffer kein Warten erforderlich ist.

Für die Ausgabepuffer müssen die Zäune im Array output_buffers festgelegt werden, das an process_capture_result () übergeben wird.

<= CAMERA_DEVICE_API_VERSION_3_1:

Für den Eingabepuffer muss der Freigabezaun durch den Aufruf process_capture_request () festgelegt werden.

> = CAMERA_DEVICE_API_VERSION_3_2:

Für den Eingabepuffer müssen die Zäune in dem an process_capture_result () übergebenen input_buffer gesetzt werden.

Nach dem Signalisieren von release_fence für diesen Puffer sollte die HAL keine weiteren Versuche unternehmen, auf diesen Puffer zuzugreifen, da der Besitz vollständig zurück in das Framework übertragen wurde.

Wenn ein Zaun von -1 angegeben wurde, wird der Besitz dieses Puffers sofort nach dem Aufruf von process_capture_result zurück übertragen.

Definition in Zeile 1827 der Datei camera3.h .

int status

Aktueller Status des Puffers, einer der Werte für camera3_buffer_status_t. Das Framework übergibt keine Puffer an die HAL, die sich in einem Fehlerzustand befinden. Falls ein Puffer nicht von der HAL gefüllt werden konnte, muss sein Status auf CAMERA3_BUFFER_STATUS_ERROR gesetzt sein, wenn er mit process_capture_result () an das Framework zurückgegeben wird.

Definition in Zeile 1773 der Datei camera3.h .

Das Handle des Streams, dem dieser Puffer zugeordnet ist

Definition in Zeile 1759 der Datei camera3.h .


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