camera3_capture_request 結構參考資料
#include <
camera3.h
>
資料欄位 |
|
uint32_t | frame_number |
const camera_metadata_t * | 設定 |
camera3_stream_buffer_t * | input_buffer |
uint32_t | num_output_buffers |
const camera3_stream_buffer_t * | output_buffers |
詳細說明
camera3_capture_request_t:
單一要求,要求對圖片擷取/緩衝區重新處理,在 process_capture_request() 中由架構傳送至相機 HAL 裝置。
這項要求包含用於這項擷取作業的設定,以及用於寫入最終圖片資料的輸出緩衝區集。這項要求可選擇包含輸入緩衝區,在這種情況下,系統會重新處理該輸入緩衝區,而不是使用相機感應器擷取新圖片。擷取畫面會以 frame_number 識別。
相機 HAL 裝置必須使用 process_capture_result() 回呼,以非同步方式將 camera3_capture_result 結構傳送至架構。
欄位說明文件
uint32_t frame_number |
影格編號是架構設定的遞增整數,用於唯一識別這項擷取作業。這項 ID 必須在結果呼叫中傳回,也用於在傳送至 camera3_callback_ops_t.notify() 的非同步通知中識別要求。
camera3_stream_buffer_t * input_buffer |
用於此要求的輸入串流緩衝區 (如有)。
如果 input_buffer 為空值,則要求是從影像擷取器擷取新影像。如果 input_buffer 有效,要求就會重新處理 input_buffer 中包含的圖片。
在後一種情況下,在 process_capture_request() 傳回之前,HAL 必須將 input_buffer 的 release_fence 設為有效的同步區隔,如果 HAL 不支援同步,則設為 -1。
HAL 必須先等待輸入緩衝區的取得同步區域,才能存取該緩衝區。
<= CAMERA_DEVICE_API_VERSION_3_1:
在此處加入的任何輸入緩衝區,都會先透過 register_stream_buffers() 向 HAL 註冊,再納入要求。
>= CAMERA_DEVICE_API_VERSION_3_2:
緩衝區不會預先註冊至 HAL。後續要求可能會重複使用緩衝區,或提供全新的緩衝區。
const camera3_stream_buffer_t * output_buffers |
一個 num_output_buffers 串流緩衝區陣列,可填入來自這項擷取/重新處理作業的圖片資料。HAL 必須等待每個串流緩衝區的取得柵欄,才能寫入這些緩衝區。
HAL 會取得 output_buffers 中實際 buffer_handle_t 項目的擁有權;在這些項目以 camera3_capture_result_t 傳回之前,架構不會存取這些項目。
<= CAMERA_DEVICE_API_VERSION_3_1:
在將這裡的所有緩衝區納入要求之前,會先透過 register_stream_buffers() 將這些緩衝區註冊至 HAL。
>= CAMERA_DEVICE_API_VERSION_3_2:
這裡所包含的任何或所有緩衝區,都可能是此要求中的全新緩衝區 (從未在 HAL 中出現過)。
const camera_metadata_t * settings |
這個結構體的說明文件是由下列檔案產生:
- hardware/libhardware/include/hardware/ camera3.h