Ab dem 27. März 2025 empfehlen wir, android-latest-release
anstelle von aosp-main
zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
camera3_stream_buffer-Strukturreferenz
#include <
camera3.h
>
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
.
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
.
Der native Handle für den Puffer
Definition in Zeile
1764
der Datei
camera3.h
.
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
.
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:
-
hardware/libhardware/include/hardware/
camera3.h
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-27 (UTC)."],[],[],null,["# Android Hardware Abstraction Layer: camera3_stream_buffer Struct Reference\n\ncamera3_stream_buffer Struct Reference\n======================================\n\n[Data Fields](#pub-attribs) \ncamera3_stream_buffer Struct Reference \n\n`\n#include \u003c\n`[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)`\n\u003e\n`\n\n|---------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|\n| Data Fields ----------- ||\n| [camera3_stream_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h) \\* | [stream](/reference/hal/structcamera3__stream__buffer#afaf6c85f165b4180fe63affae0232dad) |\n| ||\n| buffer_handle_t \\* | [buffer](/reference/hal/structcamera3__stream__buffer#ab87cddef201db642e7972d124d741dc2) |\n| ||\n| int | [status](/reference/hal/structcamera3__stream__buffer#a6e27f49150e9a14580fb313cc2777e00) |\n| ||\n| int | [acquire_fence](/reference/hal/structcamera3__stream__buffer#a5d59e0770b54af97a9fe151da5688719) |\n| ||\n| int | [release_fence](/reference/hal/structcamera3__stream__buffer#a248e5f7856e4c2877715fc9fda8d8ba8) |\n| ||\n\n\nDetailed Description\n--------------------\n\n\ncamera3_stream_buffer_t:\n\n\nA single buffer from a camera3 stream. It includes a handle to its parent stream, the handle to the gralloc buffer itself, and sync fences\n\n\nThe buffer does not specify whether it is to be used for input or output; that is determined by its parent stream type and how the buffer is passed to the HAL device.\n\n\nDefinition at line\n[1755](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\nField Documentation\n-------------------\n\n\n|-------------------|\n| int acquire_fence |\n\n\nThe acquire sync fence for this buffer. The HAL must wait on this fence fd before attempting to read from or write to this buffer.\n\n\nThe framework may be set to -1 to indicate that no waiting is necessary for this buffer.\n\n\nWhen the HAL returns an output buffer to the framework with process_capture_result(), the acquire_fence must be set to -1. If the HAL never waits on the acquire_fence due to an error in filling a buffer, when calling process_capture_result() the HAL must set the release_fence of the buffer to be the acquire_fence passed to it by the framework. This will allow the framework to wait on the fence before reusing the buffer.\n\n\nFor input buffers, the HAL must not change the acquire_fence field during the process_capture_request() call.\n\n\n\\\u003e= CAMERA_DEVICE_API_VERSION_3_2:\n\n\nWhen the HAL returns an input buffer to the framework with process_capture_result(), the acquire_fence must be set to -1. If the HAL never waits on input buffer acquire fence due to an error, the sync fences should be handled similarly to the way they are handled for output buffers.\n\n\nDefinition at line\n[1800](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n|--------------------------|\n| buffer_handle_t\\* buffer |\n\n\nThe native handle to the buffer\n\n\nDefinition at line\n[1764](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n|-------------------|\n| int release_fence |\n\n\nThe release sync fence for this buffer. The HAL must set this fence when returning buffers to the framework, or write -1 to indicate that no waiting is required for this buffer.\n\n\nFor the output buffers, the fences must be set in the output_buffers array passed to process_capture_result().\n\n\n\\\u003c= CAMERA_DEVICE_API_VERSION_3_1:\n\n\nFor the input buffer, the release fence must be set by the process_capture_request() call.\n\n\n\\\u003e= CAMERA_DEVICE_API_VERSION_3_2:\n\n\nFor the input buffer, the fences must be set in the input_buffer passed to process_capture_result().\n\n\nAfter signaling the release_fence for this buffer, the HAL should not make any further attempts to access this buffer as the ownership has been fully transferred back to the framework.\n\n\nIf a fence of -1 was specified then the ownership of this buffer is transferred back immediately upon the call of process_capture_result.\n\n\nDefinition at line\n[1827](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n|------------|\n| int status |\n\n\nCurrent state of the buffer, one of the camera3_buffer_status_t values. The framework will not pass buffers to the HAL that are in an error state. In case a buffer could not be filled by the HAL, it must have its status set to CAMERA3_BUFFER_STATUS_ERROR when returned to the framework with process_capture_result().\n\n\nDefinition at line\n[1773](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n|----------------------------------------------------------------------------------------------------------------------------------|\n| [camera3_stream_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h) \\* stream |\n\n\nThe handle of the stream this buffer is associated with\n\n\nDefinition at line\n[1759](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n*** ** * ** ***\n\nThe documentation for this struct was generated from the following file:\n\n- hardware/libhardware/include/hardware/ [camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)"]]