camera3_capture_request 結構參考資料

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 結構傳送至架構。

定義位於檔案 camera3.h 2135 行。

欄位說明文件

uint32_t frame_number

影格編號是架構設定的遞增整數,用於唯一識別這項擷取作業。這項 ID 必須在結果呼叫中傳回,也用於在傳送至 camera3_callback_ops_t.notify() 的非同步通知中識別要求。

定義位於檔案 camera3.h 2142 行。

用於此要求的輸入串流緩衝區 (如有)。

如果 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。後續要求可能會重複使用緩衝區,或提供全新的緩衝區。

定義位於檔案 camera3.h 2177 行。

uint32_t num_output_buffers

此擷取要求的輸出緩衝區數量。不得小於 1。

定義位於檔案 camera3.h 2183 行。

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 中出現過)。

定義位於檔案 camera3.h 2204 行。

const camera_metadata_t * settings

設定緩衝區包含要求的擷取和處理參數。在特殊情況下,空值設定緩衝區表示設定與最近提交的擷取要求相同。在 configure_streams() 呼叫後,您無法將空值緩衝區用於做為第一個提交的要求。

定義位於檔案 camera3.h 的第 2151 行。


這個結構體的說明文件是由下列檔案產生: