camera3_stream_buffer Odniesienie do struktury

camera3_stream_buffer Odniesienie do struktury

#include < camera3.h >

Pola danych

camera3_stream_t *strumień
buffer_handle_t *bufor
intstatus
intakwizycja_fence
intrelease_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.

Definicja w linii 1755 pliku camera3.h .

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.

Definicja w wierszu 1800 pliku camera3.h .

buffer_handle_t * buffer

Natywny uchwyt do bufora

Definicja w linii 1764 pliku camera3.h .

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.

Definicja w linii 1827 pliku camera3.h .

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

Definicja w linii 1773 pliku camera3.h .

Uchwyt strumienia, z którym jest powiązany ten bufor

Definicja w linii 1759 pliku camera3.h .


Dokumentacja dla tej struktury została wygenerowana z następującego pliku:
  • sprzęt / libhardware / include / hardware / camera3.h