透過集合功能整理內容
你可以依據偏好儲存及分類內容。
camera2_device_ops結構參考
#include < camera2.h >
allocate_reprocess_stream:
分配一個新的輸入流以供使用,由輸出緩衝區寬度、高度和像素格式定義。如果成功,則傳回新串流的 ID、gralloc 使用標誌以及所需的同時可取得緩衝區計數。錯誤條件:
- 請求感測器靜態特性未列出的寬度/高度/格式組合
- 要求一次配置太多的後處理流程。
輸入參數:
- width、height、format:透過此流傳送的緩衝區的規格。格式必須是 HAL_PIXEL_FORMAT_* 清單中的值。
- reprocess_stream_ops:用於取得和釋放該流的緩衝區的函數指標結構。底層流將根據使用情況和 max_buffers 輸出進行配置。
輸出參數:
- Stream_id:標識該流的無符號整數。該值用於傳入請求以識別流以及釋放流。這些 id 與輸入流 id 分開編號。
- Consumer_usage:HAL 裝置使用要求的資料類型所需的 gralloc 使用遮罩。這用於為流緩衝區佇列分配新的 gralloc 緩衝區。
- max_buffers:HAL設備可能需要同時取得的最大緩衝區數。設備同時取得的緩衝區數不得超過該值。
檔案camera2.h第708行的定義。
allocate_reprocess_stream_from_stream:
分配一個新的輸入流以供使用,它將使用為現有輸出流分配的緩衝區。也就是說,在 HAL 將緩衝區排隊到輸出流上之後,它可能會看到從該輸入重新處理流傳遞給它的相同緩衝區。 HAL 將緩衝區釋放回重新處理流程後,將返回輸出佇列以供重複使用。
錯誤條件:
- 使用大小/格式不合適的輸出流作為重新處理流的基礎。
- 嘗試一次分配太多的重新處理流。
輸入參數:
- output_stream_id:現有輸出流的 ID,其大小和格式適合重新處理。
- reprocess_stream_ops:用於取得和釋放該流的緩衝區的函數指標結構。底層流將使用與輸出流相同的圖形緩衝區句柄。
輸出參數:
- Stream_id:標識該流的無符號整數。該值用於傳入請求以識別流以及釋放流。這些 id 與輸入流 id 分開編號。
HAL 用戶端必須始終在釋放其所基於的輸出流之前釋放重新處理流。
檔案camera2.h第754行的定義。
分配流:
分配一個新的輸出流供使用,由輸出緩衝區寬度、高度、目標以及可能的像素格式定義。如果成功,則傳回新流的 ID、gralloc 使用標誌、最小佇列緩衝區計數以及可能的像素格式。錯誤條件:
- 請求感測器靜態特性未列出的寬度/高度/格式組合
- 要求給定格式類型的流過多(例如,2 個拜耳原始流)。
輸入參數:
- width、height、format:透過此流傳送的緩衝區的規格。格式是 HAL_PIXEL_FORMAT_* 清單中的值。如果使用 HAL_PIXEL_FORMAT_IMPLMENTATION_DEFINED,則平台 gralloc 模組將根據相機 HAL 和串流的使用者提供的使用標誌來選擇格式。如有必要,相機 HAL 應檢查在 register_stream_buffers 呼叫中傳遞給它的緩衝區,以取得特定於實作的格式。
- Stream_ops:用於取得該流的緩衝區並將其排隊的函數指標結構。底層流將根據使用情況和 max_buffers 輸出進行配置。該結構中的方法只有在 allocate_stream 返回後才能被呼叫。
輸出參數:
- Stream_id:標識該流的無符號整數。該值用於傳入請求以識別流以及釋放流。
- 用法:HAL 設備產生請求的資料類型所需的 gralloc 用法遮罩。這用於為流緩衝區佇列分配新的 gralloc 緩衝區。
- max_buffers:HAL 裝置可能需要同時出隊的最大緩衝區數。設備同時出隊的緩衝區數不得超過此值。
檔案camera2.h第632行的定義。
為標準相機用例建立已填寫的預設請求。
裝置必須傳回配置為滿足所請求案例的完整請求,該請求必須是 CAMERA2_TEMPLATE_* 枚舉之一。必須包含所有請求控製字段(android.request.outputStreams 除外)。
傳回的元資料緩衝區必須使用 allocate_camera_metadata 進行指派。框架取得緩衝區的所有權。
檔案camera2.h第580行的定義。
刷新所有正在進行的捕獲。這包括尚未將任何輸出放入串流或幀隊列中的所有出隊請求(常規或重新處理)。部分完成的捕獲必須正常完成。在刷新完成之前,不會有新的請求從請求佇列中出隊。
檔案camera2.h第567行的定義。
設備目前正在處理的相機請求數(捕獲/重新處理其請求已出隊,但尚未入隊到輸出管道)。在進行中計數為 0 之前,框架不會釋放任何流。
檔案camera2.h第558行的定義。
取得設備實例特定的元資料。對於相機裝置的單一實例,此元資料必須是恆定的,但在 open() 呼叫之間可能有所不同。傳回的camera_metadata指標必須在呼叫裝置close()方法之前有效。
版本資訊:
CAMERA_DEVICE_API_VERSION_2_0:
無法使用。框架可能無法存取此函數指標。
CAMERA_DEVICE_API_VERSION_2_1:
有效的。可以被框架呼叫。
檔案camera2.h第820行的定義。
取得查詢供應商擴展元資料標籤資訊的方法。如果沒有定義供應商擴充標籤,可以將 ops 設為 NULL。
檔案camera2.h第795行的定義。
通知設備請求隊列不再為空。只有當第一個緩衝區新增至新佇列時,或在來源回應出隊呼叫而傳回 NULL 之後,才必須呼叫。
檔案camera2.h第544行的定義。
int(* register_stream_buffers)(const structcamera2_device *,uint32_tstream_id,intnum_buffers,buffer_handle_t*buffers) |
為給定流註冊緩衝區。這是在成功呼叫 allocate_stream 之後、引用流的第一個請求入隊之前調用的。此方法旨在允許 HAL 裝置映射或以其他方式準備緩衝區以供以後使用。 num_buffers 保證至少為 max_buffers (來自 allocate_stream),但也可以更大。緩衝區已被鎖定以供使用。呼叫結束時,所有緩衝區必須準備好返回佇列。如果流格式設定為 HAL_PIXEL_FORMAT_IMPLMENTATION_DEFINED,則相機 HAL 應檢查此處傳入的緩衝區以確定任何平台私有的像素格式資訊。
檔案camera2.h第657行的定義。
釋放重新處理流。如果在 get_in_progress_count 非零時調用,或者流 ID 無效,則傳回錯誤。
檔案camera2.h第765行的定義。
釋放一個流。如果在 get_in_progress_count 非零時調用,或者流 ID 無效,則傳回錯誤。
檔案camera2.h第667行的定義。
觸發異步活動。這用於在使用相機3A例程時觸發它們的特殊行為。有關觸發器 ID 及其參數的詳細信息,請參閱上面的 CAMERA2_TRIGGER_* 文件。
定義位於檔案camera2.h的第779行。
該結構的文檔是從以下文件產生的:
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2023-12-01 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2023-12-01 (世界標準時間)。"],[],[]]