camera3_stream_buffer Strukturreferenz

camera3_stream_buffer Strukturreferenz

#include < camera3.h >

Datenfelder

camera3_stream_t * Strom
buffer_handle_t * Puffer
int Status
int erwerben_zaun
int release_fence

detaillierte Beschreibung

camera3_stream_buffer_t:

Ein einzelner Puffer aus einem Kamera3-Stream. Es enthält ein Handle für seinen ü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 Art und Weise bestimmt, wie der Puffer an das HAL-Gerät übergeben wird.

Definition in Zeile 1755 der Datei camera3.h .

Felddokumentation

int acquire_fence

Der Erfassungssynchronisierungszaun für diesen Puffer. Der HAL muss auf diesem Zaun fd warten, bevor er 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 „acquire_fence“ auf -1 gesetzt werden. Wenn der HAL aufgrund eines Fehlers beim Füllen eines Puffers nie auf den Acquire_Fence wartet, muss der HAL beim Aufruf von Process_Capture_Result() den Release_Fence des Puffers auf den Acquire_Fence setzen, der ihm vom Framework übergeben wurde. Dadurch kann das Framework auf dem Zaun warten, bevor es den Puffer wiederverwendet.

Bei Eingabepuffern darf die HAL das Feld „acquire_fence“ während des Aufrufs von „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 „acquire_fence“ auf -1 gesetzt werden. Wenn die HAL aufgrund eines Fehlers nie auf den Eingabepuffer-Erfassungszaun wartet, sollten die Synchronisierungszauns ähnlich wie für Ausgabepuffer gehandhabt werden.

Definition in Zeile 1800 der Datei camera3.h .

buffer_handle_t* Puffer

Das native Handle für den Puffer

Definition in Zeile 1764 der Datei camera3.h .

int release_fence

Der Release-Synchronisierungszaun für diesen Puffer. Der HAL muss diesen Zaun festlegen, wenn er Puffer an das Framework zurückgibt, oder -1 schreiben, um anzugeben, 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 von process_capture_request() festgelegt werden.

>= CAMERA_DEVICE_API_VERSION_3_2:

Für den Eingabepuffer müssen die Zäune im input_buffer festgelegt werden, der an process_capture_result() übergeben wird.

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

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

Definition in Zeile 1827 der Datei camera3.h .

int-Status

Aktueller Zustand des Puffers, einer der camera3_buffer_status_t-Werte. Das Framework übergibt keine Puffer an die HAL, die sich in einem Fehlerzustand befinden. Falls ein Puffer vom HAL nicht 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