camera3_stream_buffer Odniesienie do struktury
#include < camera3.h >
Pola danych | |
camera3_stream_t * | strumień |
buffer_handle_t * | bufor |
int | status |
int | akwizycja_fence |
int | release_fence |
szczegółowy opis
camera3_stream_buffer_t:
Pojedynczy bufor ze strumienia camera3. Zawiera uchwyt do swojego strumienia nadrzędnego, uchwyt do samego bufora Gralloc i synchronizację ogrodzeń
Bufor nie określa, czy ma być używany jako wejście, czy wyjście; który jest określany przez typ strumienia nadrzędnego i sposób przekazywania buforu do urządzenia HAL.
Dokumentacja terenowa
int bring_fence |
Zasięg synchronizacji pozyskiwania dla tego bufora. HAL musi czekać na tym ogrodzeniu, zanim spróbuje odczytać lub zapisać do tego bufora.
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ą process_capture_result (), fence_zbierania musi być ustawiona na -1. Jeśli warstwa HAL nigdy nie czeka na ogrodzenie_zakupowe z powodu błędu podczas wypełniania buforu, podczas wywoływania metody process_capture_result () warstwa HAL musi ustawić parametr release_fence bufora na ogrodzenie_zasobu przekazane do niej przez strukturę. Umożliwi to szkieletowi czekanie 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ą funkcji process_capture_result (), ogrodzenie_zakupowe musi mieć wartość -1. Jeśli warstwa HAL nigdy nie czeka na ogrodzenie pobierania bufora wejściowego z powodu błędu, ogrodzenia synchronizacji powinny być obsługiwane podobnie do sposobu, w jaki są obsługiwane dla buforów wyjściowych.
int release_fence |
Ogrodzenie synchronizacji zwolnień dla tego bufora. Warstwa HAL musi ustawić to ogrodzenie podczas zwracania buforów do struktury lub napisać -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 process_capture_result ().
<= CAMERA_DEVICE_API_VERSION_3_1:
W przypadku bufora wejściowego granica zwolnienia musi być ustawiona przez wywołanie process_capture_request ().
> = CAMERA_DEVICE_API_VERSION_3_2:
W przypadku bufora wejściowego ogrodzenia 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 ogrodzenie równe -1, własność tego buforu jest przenoszona z powrotem natychmiast po wywołaniu process_capture_result.
stan int |
Bieżący stan bufora, jedna z wartości camera3_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 frameworka za pomocą process_capture_result ().
camera3_stream_t * stream |
Dokumentacja dla tej struktury została wygenerowana z następującego pliku:
- sprzęt / libhardware / include / hardware / camera3.h