camera3_capture_request結構參考

camera3_capture_request結構參考

#include < camera3.h >

資料欄位

uint32_t影格號
常數camera_metadata_t *設定
相機3_stream_buffer_t *輸入緩衝區
uint32_t num_output_buffers
常數camera3_stream_buffer_t *輸出緩衝區

詳細說明

camera3_capture_request_t:

影像擷取/緩衝區重新處理的單一請求,由框架在 process_capture_request() 中傳送至相機 HAL 裝置。

此請求包含用於此捕獲的設置,以及用於寫入結果影像資料的輸出緩衝區集。它可以選擇包含輸入緩衝區,在這種情況下,請求用於重新處理該輸入緩衝區而不是捕獲新的緩衝區影像與相機感測器。捕獲由frame_number 標識。

作為回應,相機 HAL 裝置必須使用 process_capture_result() 回呼將camera3_capture_result結構非同步傳送到框架。

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

現場文檔

uint32_t 幀號

幀編號是框架設定的遞增整數,用於唯一標識此擷取。它需要在結果呼叫中傳回,也用於識別發送到camera3_callback_ops_t.notify()的非同步通知中的請求。

檔案camera3.h2142行的定義。

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

如果 input_buffer 為 NULL,則請求是從成像器進行新的捕獲。如果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.h2177行的定義。

uint32_t num_output_buffers

此捕獲請求的輸出緩衝區的數量。必須至少為 1。

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

常數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.h2204行的定義。

常數camera_metadata_t *設定

設定緩衝區包含請求的擷取和處理參數。作為一種特殊情況,NULL 設定緩衝區表示設定與最近提交的捕獲請求相同。 NULL 緩衝區不能用作 configure_streams() 呼叫後第一個提交的請求。

檔案camera3.h2151行的定義。


該結構的文檔是從以下文件產生的:
  • 硬體/libhardware/include/hardware/camera3.h