camera3_stream_buffer結構參考

camera3_stream_buffer結構參考

#include < camera3.h >

資料欄位

相機3_stream_t *溪流
緩衝區句柄_t *緩衝
整數地位
整數取得柵欄
整數釋放柵欄

詳細說明

camera3_stream_buffer_t:

來自camera3流的單一緩衝區。它包括其父流的句柄、gralloc 緩衝區本身的句柄以及同步柵欄

緩衝區沒有指定它是用於輸入還是輸出;這是由其父流類型以及緩衝區如何傳遞到 HAL 設備決定的。

檔案camera3.h1755行的定義。

現場文檔

int acquire_fence

此緩衝區的取得同步柵欄。在嘗試讀取或寫入此緩衝區之前,HAL 必須等待此柵欄 fd。

框架可以設定為-1以指示該緩衝區不需要等待。

當 HAL 使用 process_capture_result() 將輸出緩衝區傳回框架時, acquire_fence 必須設定為 -1。如果由於填充緩衝區時出錯,HAL 從不等待 acquire_fence,則在呼叫 process_capture_result() 時,HAL 必須將緩衝區的release_fence 設為框架傳遞給它的 acquire_fence。這將允許框架在重複使用緩衝區之前等待。

對於輸入緩衝區,HAL 不得在 process_capture_request() 呼叫期間變更 acquire_fence 欄位。

>= CAMERA_DEVICE_API_VERSION_3_2:

當 HAL 使用 process_capture_result() 將輸入緩衝區傳回框架時, acquire_fence 必須設定為 -1。如果 HAL 因錯誤而從不等待輸入緩衝區取得柵欄,則同步柵欄的處理方式應與處理輸出緩衝區的方式類似。

檔案camera3.h1800行的定義。

buffer_handle_t* 緩衝區

緩衝區的本機句柄

檔案camera3.h1764行的定義。

intrelease_fence

此緩衝區的釋放同步柵欄。當向框架傳回緩衝區時,HAL 必須設定此柵欄,或寫入 -1 以指示此緩衝區不需要等待。

對於輸出緩衝區,必須在傳遞給 process_capture_result() 的 output_buffers 陣列中設定柵欄。

<= CAMERA_DEVICE_API_VERSION_3_1:

對於輸入緩衝區,必須透過 process_capture_request() 呼叫設定釋放柵欄。

>= CAMERA_DEVICE_API_VERSION_3_2:

對於輸入緩衝區,必須在傳遞給 process_capture_result() 的 input_buffer 中設定柵欄。

在發出此緩衝區的release_fence 訊號後,HAL 不應再嘗試存取此緩衝區,因為所有權已完全轉移回框架。

如果指定了 -1 的柵欄,則該緩衝區的所有權將在呼叫 process_capture_result 時立即轉回。

檔案camera3.h1827行的定義。

整數狀態

緩衝區的目前狀態,camera3_buffer_status_t 值之一。框架不會將處於錯誤狀態的緩衝區傳遞給 HAL。如果 HAL 無法填滿緩衝區,則使用 process_capture_result() 返回框架時,必須將其狀態設為 CAMERA3_BUFFER_STATUS_ERROR。

檔案camera3.h1773行的定義。

該緩衝區關聯的流的句柄

檔案camera3.h1759行的定義。


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