Od 27 marca 2025 r. zalecamy używanie android-latest-release
zamiast aosp-main
do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Informacje o strukturze camera3_stream_buffer
#include <
camera3.h
>
camera3_stream_buffer_t:
Pojedynczy bufor z strumienia z kamery3. Zawiera uchwyt nadrzędnego strumienia, uchwyt do samego bufora gralloc i ograniczenia synchronizacji.
Bufor nie określa, czy ma być używany do wejścia czy wyjścia; jest to określane przez typ nadrzędnego strumienia i sposób przekazywania bufora do urządzenia HAL.
Definicja w wierszu
1755
pliku
camera3.h
.
Ograniczenie synchronizacji pozyskiwania dla tego bufora. Zanim HAL spróbuje odczytać lub zapisać ten bufor, musi zaczekać na ten zamek.
Wartość -1 może oznaczać, że nie trzeba czekać na ten bufor.
Gdy interfejs HAL zwraca do interfejsu frameworku bufor wyjściowy za pomocą funkcji process_capture_result(), parametr acquire_fence musi mieć wartość -1. Jeśli HAL nigdy nie czeka na acquire_fence z powodu błędu podczas wypełniania bufora, podczas wywołania process_capture_result() musi ustawić release_fence bufora jako acquire_fence przekazany przez framework. Pozwoli to frameworkowi na oczekiwanie na zablokowanie przed ponownym użyciem bufora.
W przypadku buforów wejściowych HAL nie może zmieniać pola acquire_fence podczas wywołania process_capture_request().
>= CAMERA_DEVICE_API_VERSION_3_2:
Gdy HAL zwraca do interfejsu API bufor danych wejściowych za pomocą funkcji process_capture_result(), parametr acquire_fence musi mieć wartość -1. Jeśli HAL nigdy nie czeka na płot nabycia bufora wejściowego z powodu błędu, płoty synchronizacji powinny być obsługiwane podobnie jak w przypadku buforów wyjściowych.
Definicja w wierszu
1800
pliku
camera3.h
.
Natywne uchwyty do bufora
Definicja w wierszu
1764
w pliku
camera3.h
.
Bramka synchronizacji z celą uwolnienia bufora. HAL musi ustawić tę barierę, zwracając bufor do interfejsu, lub zapisać -1, aby wskazać, że nie jest wymagane oczekiwanie na ten bufor.
W przypadku buforów wyjściowych ogrodzenia muszą być ustawione w tablicy output_buffers przekazanej do funkcji process_capture_result().
<= CAMERA_DEVICE_API_VERSION_3_1:
W przypadku bufora wejściowego zaznaczenie ogrodzenia musi być ustawione przez wywołanie process_capture_request().
>= CAMERA_DEVICE_API_VERSION_3_2:
W przypadku bufora wejściowego ogrodzenia muszą być ustawione w input_buffer przekazanym do process_capture_result().
Po wysłaniu sygnału release_fence dla tego bufora interfejs HAL nie powinien podejmować dalszych prób uzyskania dostępu do tego bufora, ponieważ własność została całkowicie przywrócona do interfejsu.
Jeśli podano wartość ogrodzenia -1, własność tego bufora jest natychmiast przywracana po wywołaniu process_capture_result.
Definicja w wierszu
1827
pliku
camera3.h
.
Obecny stan bufora, jedna z wartości camera3_buffer_status_t. Framework nie przekaże do HAL-a buforów, które są w stanie błędu. Jeśli bufor nie może zostać wypełniony przez HAL, jego stan musi być ustawiony na CAMERA3_BUFFER_STATUS_ERROR, gdy zostanie zwrócony do frameworku za pomocą process_capture_result().
Definicja w wierszu
1773
pliku
camera3.h
.
Identyfikator strumienia, z którym jest powiązany ten bufor.
Definicja w wierszu
1759
pliku
camera3.h
.
Dokumentacja tego typu danych została wygenerowana z tego pliku:
-
hardware/libhardware/include/hardware/
camera3.h
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-27 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 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)"]]