Informacje o strukturze camera3_stream_buffer

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.

Definicja w wierszu 1755 pliku camera3.h .

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.

Definicja w wierszu 1800 pliku camera3.h .

buffer_handle_t* buffer

Natywne uchwyty do bufora

Definicja w wierszu 1764 w pliku camera3.h .

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.

Definicja w wierszu 1827 pliku camera3.h .

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().

Definicja w wierszu 1773 pliku camera3.h .

camera3_stream_t * strumień

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: