Odniesienie do struktury Camera3_stream_buffer
#include < camera3.h >
Pola danych | |
kamera3_stream_t * | strumień |
bufor_uchwyt_t * | bufor |
wew | status |
wew | nabyć_ogrodzenie |
wew | uwolnienie_ogrodzenia |
szczegółowy opis
kamera3_stream_buffer_t:
Pojedynczy bufor ze strumienia z kamery3. Zawiera uchwyt do strumienia nadrzędnego, uchwyt do samego bufora graloc i ogrodzenia synchronizacji
Bufor nie określa, czy ma być używany jako wejście czy wyjście; jest to określane na podstawie typu strumienia nadrzędnego i sposobu przekazywania buforu do urządzenia HAL.
Dokumentacja terenowa
int nabycia_ogrodzenia |
Ogrodzenie synchronizacji nabycia dla tego bufora. HAL musi czekać na tym ogrodzeniu fd przed próbą odczytu lub zapisu w tym buforze.
Struktura może być ustawiona na -1, aby wskazać, że nie jest konieczne oczekiwanie na ten bufor.
Gdy warstwa HAL zwraca bufor wyjściowy do struktury za pomocą metody Process_capture_result(), parametr nabycia_fence musi być ustawiony na -1. Jeśli warstwa HAL nigdy nie czeka na nabycia_fence z powodu błędu w wypełnieniu bufora, podczas wywoływania metody Process_capture_result() warstwa HAL musi ustawić release_fence bufora tak, aby była ona przekazywana do niej przez framework. Pozwoli to frameworkowi poczekać na ogrodzeniu przed ponownym użyciem bufora.
W przypadku buforów wejściowych warstwa HAL nie może zmieniać pola nabycia_fence podczas wywołania Process_capture_request().
>= CAMERA_DEVICE_API_VERSION_3_2:
Gdy warstwa HAL zwraca bufor wejściowy do struktury za pomocą metody Process_capture_result(), parametr nabycia_fence musi być ustawiony na -1. Jeśli warstwa HAL nigdy nie czeka na zabezpieczenie bufora wejściowego z powodu błędu, ograniczenia synchronizacji powinny być obsługiwane w podobny sposób, w jaki są obsługiwane w przypadku buforów wyjściowych.
int release_fence |
Ogrodzenie synchronizacji wydania dla tego bufora. HAL musi ustawić to ograniczenie podczas zwracania buforów do struktury lub zapisać -1, aby wskazać, że nie jest wymagane oczekiwanie na ten bufor.
W przypadku buforów wyjściowych ograniczenia muszą być ustawione w tablicy Output_buffers przekazanej do Process_capture_result().
<= CAMERA_DEVICE_API_VERSION_3_1:
W przypadku bufora wejściowego granica zwolnienia musi zostać ustawiona za pomocą wywołania Process_capture_request().
>= CAMERA_DEVICE_API_VERSION_3_2:
W przypadku bufora wejściowego ograniczenia muszą być ustawione w buforze wejściowym przekazanym do Process_capture_result().
Po zasygnalizowaniu release_fence dla tego bufora, warstwa HAL nie powinna podejmować żadnych dalszych prób uzyskania dostępu do tego bufora, ponieważ własność została w pełni przeniesiona z powrotem do struktury.
Jeśli określono ograniczenie -1, własność tego bufora zostaje zwrócona natychmiast po wywołaniu Process_capture_result.
stan int |
Bieżący stan bufora, jedna z wartości kamery3_buffer_status_t. Struktura nie przekaże buforów do warstwy HAL, które są w stanie błędu. W przypadku, gdy bufor nie może zostać wypełniony przez warstwę HAL, musi mieć status ustawiony na CAMERA3_BUFFER_STATUS_ERROR po zwróceniu do struktury za pomocą metody Process_capture_result().
kamera3_stream_t * strumień |
Dokumentacja tej struktury została wygenerowana z następującego pliku:
- hardware/libhardware/include/hardware/ camera3.h