camera3_stream_buffer Strukturreferenz
#include < camera3.h >
Datenfelder | |
camera3_stream_t * | Strom |
buffer_handle_t * | Puffer |
int | Status |
int | erwerben_fence |
int | release_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.
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.
buffer_handle_t * buffer |
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.
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.
camera3_stream_t * stream |
Die Dokumentation für diese Struktur wurde aus der folgenden Datei generiert:
- hardware / libhardware / include / hardware / camera3.h