Informacje o strukturze camera3_capture_request
#include <
camera3.h
>
Pola danych |
|
uint32_t | frame_number |
const camera_metadata_t * | settings |
camera3_stream_buffer_t * | input_buffer |
uint32_t | num_output_buffers |
const camera3_stream_buffer_t * | output_buffers |
Szczegółowy opis
camera3_capture_request_t:
pojedyncze żądanie ponownego przetworzenia obrazu lub bufora, wysłane do urządzenia z usługą Camera HAL przez framework w ramach funkcji process_capture_request();
Prośba zawiera ustawienia, które mają być używane do tego przechwycenia, oraz zestaw buforów wyjściowych, do których mają być zapisane dane obrazu. Opcjonalnie może zawierać bufor wejściowy. W takim przypadku żądanie dotyczy ponownego przetworzenia tego bufora wejściowego zamiast rejestrowania nowego obrazu za pomocą czujnika aparatu. Zdjęcie jest identyfikowane przez parametr frame_number.
W odpowiedzi urządzenie HAL aparatu musi przesłać do frameworku asynchronicznie strukturę camera3_capture_result za pomocą wywołania z powrotem process_capture_result().
Dokumentacja pola
uint32_t frame_number |
Numer ramki to rosnąca liczba całkowita ustawiana przez system w celu jednoznacznego identyfikowania tego ujęcia. Musi być zwracany w wywołaniu metody wyniku. Służy też do identyfikowania żądania w powiadomieniach asynchronicznych wysyłanych do metody camera3_callback_ops_t.notify().
camera3_stream_buffer_t * input_buffer |
Bufor strumienia wejściowego, który ma być użyty w przypadku tego żądania (jeśli istnieje).
Jeśli input_buffer ma wartość NULL, prośba dotyczy nowego obrazu z urządzenia do skanowania. Jeśli input_buffer jest prawidłowy, żądanie dotyczy ponownego przetworzenia obrazu zawartego w input_buffer.
W tym drugim przypadku interfejs HAL musi ustawić parametr release_fence obiektu input_buffer na prawidłową barierę synchronizacji lub na -1, jeśli interfejs HAL nie obsługuje synchronizacji, zanim process_capture_request() zwróci wartość.
Przed uzyskaniem dostępu do bufora wejściowego HAL musi poczekać na zablokowanie synchronizacji.
<= CAMERA_DEVICE_API_VERSION_3_1:
Każdy bufor wejściowy uwzględniony tutaj zostanie zarejestrowany w HAL za pomocą funkcji register_stream_buffers() przed uwzględnieniem go w żądaniu.
>= CAMERA_DEVICE_API_VERSION_3_2:
Bufory nie będą wstępnie rejestrowane w HAL. Kolejne żądania mogą używać tych samych buforów lub udostępniać zupełnie nowe.
uint32_t num_output_buffers |
const camera3_stream_buffer_t * output_buffers |
Tablica num_output_buffers buforów strumienia, które mają być wypełnione danymi obrazu z tego przechwycenia lub ponownego przetwarzania. Zanim zacznie zapisywać dane, HAL musi poczekać na zablokowanie dostępu do każdego bufora strumienia.
HAL przejmuje własność rzeczywistych wpisów buffer_handle_t w output_buffers; framework nie ma do nich dostępu, dopóki nie zostaną zwrócone w camera3_capture_result_t.
<= CAMERA_DEVICE_API_VERSION_3_1:
Wszystkie uwzględnione tutaj bufory zostaną zarejestrowane w HAL za pomocą funkcji register_stream_buffers() przed uwzględnieniem ich w prośbie.
>= CAMERA_DEVICE_API_VERSION_3_2:
Każdy z tych buforów może być zupełnie nowy w tym żądaniu (czyli HAL nie widział go wcześniej).
const camera_metadata_t * settings |
Bufor ustawień zawiera parametry przechwytywania i przetwarzania żądania. W szczególnym przypadku bufor ustawień NULL wskazuje, że ustawienia są identyczne z ostatnio przesłanym żądaniem przechwytywania. Bufor NULL nie może być używany jako pierwsze przesłane żądanie po wywołaniu funkcji configure_streams().
Dokumentacja tego typu danych została wygenerowana z tego pliku:
- hardware/libhardware/include/hardware/ camera3.h