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