Informacje o strukturze camera3_stream_buffer
#include <
camera3.h
>
Pola danych |
|
camera3_stream_t * | stream |
buffer_handle_t * | bufor |
int | stan |
int | acquire_fence |
int | release_fence |
Szczegółowy opis
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.
Dokumentacja pola
int acquire_fence |
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.
int release_fence |
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.
int status |
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().
camera3_stream_t * strumień |
Dokumentacja tego typu danych została wygenerowana z tego pliku:
- hardware/libhardware/include/hardware/ camera3.h