camera3_stream_buffer-Strukturreferenz

camera3_stream_buffer-Strukturreferenz

#include < camera3.h >

Datenfelder

camera3_stream_t stream
 
buffer_handle_t *  Puffer
 
int  status
 
int  acquire_fence
 
int  release_fence
 

Detaillierte Beschreibung

camera3_stream_buffer_t:

Ein einzelner Puffer aus einem camera3-Stream. Er enthält einen Handle für den übergeordneten Stream, den Handle für den Gralloc-Puffer selbst und Synchronisationsschranken.

Im Buffer wird nicht angegeben, ob er für die Eingabe oder Ausgabe verwendet werden soll. Das wird durch den übergeordneten Streamtyp und die Art und Weise bestimmt, wie der Buffer an das HAL-Gerät übergeben wird.

Definition in Zeile 1755 der Datei camera3.h .

Felddokumentation

int acquire_fence

Der Synchronisierungs-Fence für die Akquisition dieses Buffers. Die HAL muss auf diesen Fence-FD warten, bevor sie versucht, aus diesem Puffer zu lesen oder in ihn zu schreiben.

Das Framework kann auf -1 gesetzt werden, um anzugeben, dass für diesen Puffer keine Wartezeit erforderlich ist.

Wenn die HAL mit „process_capture_result()“ einen Ausgabebuffer an das Framework zurückgibt, muss „acquire_fence“ auf -1 gesetzt werden. Wenn die HAL aufgrund eines Fehlers beim Ausfüllen eines Buffers nie auf die acquire_fence wartet, muss sie beim Aufruf von process_capture_result() die release_fence des Buffers auf die acquire_fence festlegen, die ihr vom Framework übergeben wurde. So kann das Framework auf den Fence warten, bevor der Puffer wiederverwendet wird.

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 Acquire-Fence des Eingabepuffers wartet, sollten die Synchronisations-Fences ähnlich wie bei Ausgabepuffern behandelt werden.

Definition in Zeile 1800 der Datei camera3.h .

buffer_handle_t* buffer

Der native Handle für den Puffer

Definition in Zeile 1764 der Datei camera3.h .

int release_fence

Der Release-Synchronisierungspfosten für diesen Puffer. Die HAL muss diesen Zaun setzen, wenn sie Puffer an das Framework zurückgibt, oder -1 schreiben, um anzugeben, dass für diesen Puffer kein Warten erforderlich ist.

Für die Ausgabebuffer müssen die Grenzwerte im Array „output_buffers“ festgelegt werden, das an „process_capture_result()“ übergeben wird.

<= CAMERA_DEVICE_API_VERSION_3_1:

Für den Eingabepuffer muss die Freigabeschranke durch den Aufruf von process_capture_request() festgelegt werden.

>= CAMERA_DEVICE_API_VERSION_3_2:

Für den Eingabepuffer müssen die Sperren in „input_buffer“ festgelegt werden, der an „process_capture_result()“ übergeben wird.

Nachdem die HAL den release_fence für diesen Puffer signalisiert hat, sollte sie nicht mehr versuchen, auf diesen Puffer zuzugreifen, da die Inhaberschaft vollständig an das Framework zurückgegeben wurde.

Wenn ein Zaun von -1 angegeben wurde, wird die Inhaberschaft dieses Buffers sofort nach dem Aufruf von process_capture_result zurückgegeben.

Definition in Zeile 1827 der Datei camera3.h .

int status

Aktueller Status des Buffers, einer der Werte von „camera3_buffer_status_t“. Das Framework übergibt der HAL keine Buffers, die sich in einem Fehlerstatus befinden. Wenn 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 .

Der Handle des Streams, mit dem dieser Puffer verknüpft ist

Definition in Zeile 1759 der Datei camera3.h .


Die Dokumentation für diese Struktur wurde aus der folgenden Datei generiert: