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.
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.
buffer_handle_t* buffer |
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.
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.
camera3_stream_t * stream |
Die Dokumentation für diese Struktur wurde aus der folgenden Datei generiert:
- hardware/libhardware/include/hardware/ camera3.h