camera2_device_ops結構參考
camera2_device_ops結構參考
#include < camera2.h >
資料欄位 | |
整數(* | set_request_queue_src_ops )(const structcamera2_device *, constcamera2_request_queue_src_ops_t *request_src_ops) |
整數(* | notification_request_queue_not_empty )(const structcamera2_device *) |
整數(* | set_frame_queue_dst_ops )(const structcamera2_device *, constcamera2_frame_queue_dst_ops_t *frame_dst_ops) |
整數(* | get_in_progress_count )(const structcamera2_device *) |
整數(* | lush_captures_in_progress )(const structcamera2_device *) |
整數(* | 建構預設請求)(常數結構camera2_device *,int request_template, camera_metadata_t **請求) |
整數(* | allocate_stream )(常數結構camera2_device *,uint32_t寬度,uint32_t高度,int格式,常量camera2_stream_ops_t *stream_ops,uint32_t *stream_id,uint32_t *format_actual,uint32_t *maxuint32_t |
整數(* | register_stream_buffers )(const structcamera2_device *,uint32_tstream_id,intnum_buffers,buffer_handle_t*buffers) |
整數(* | release_stream )(const structcamera2_device *,uint32_tstream_id) |
整數(* | allocate_reprocess_stream )(常數結構camera2_device *,uint32_t寬度,uint32_t高度,uint32_t格式,常數camera2_stream_in_ops_t *reprocess_stream_ops,uint32_t *stream_id,uint32_tconsum |
整數(* | allocate_reprocess_stream_from_stream )(const structcamera2_device *,uint32_toutput_stream_id, constcamera2_stream_in_ops_t *reprocess_stream_ops,uint32_t*stream_id) |
整數(* | release_reprocess_stream )(const structcamera2_device *,uint32_tstream_id) |
整數(* | 觸發器動作)(常數結構camera2_device *,uint32_t觸發器_id,int32_t ext1,int32_t ext2) |
整數(* | set_notify_callback )(常數結構camera2_device *, camera2_notify_callback notification_cb,void *使用者) |
整數(* | get_metadata_vendor_tag_ops )(const structcamera2_device *,vendor_tag_query_ops_t **ops) |
整數(* | 轉儲)(常數結構camera2_device *,int fd) |
整數(* | get_instance_metadata )(常數結構camera2_device *,camera_metadata **instance_metadata) |
詳細說明
現場文檔
int(* allocate_reprocess_stream)(const structcamera2_device *,uint32_t寬度,uint32_t高度,uint32_t格式, constcamera2_stream_in_ops_t *reprocess_stream_ops,uint32_t問題 *stream_id,uint32_t *reconer_h.p. |
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設備可能需要同時取得的最大緩衝區數。設備同時取得的緩衝區數不得超過該值。
int(* allocate_reprocess_stream_from_stream)(const structcamera2_device *, uint32_t output_stream_id, constcamera2_stream_in_ops_t *reprocess_stream_ops,uint32_t *stream_id) |
allocate_reprocess_stream_from_stream:
分配一個新的輸入流以供使用,它將使用為現有輸出流分配的緩衝區。也就是說,在 HAL 將緩衝區排隊到輸出流上之後,它可能會看到從該輸入重新處理流傳遞給它的相同緩衝區。 HAL 將緩衝區釋放回重新處理流程後,將返回輸出佇列以供重複使用。
錯誤條件:
- 使用大小/格式不合適的輸出流作為重新處理流的基礎。
- 嘗試一次分配太多的重新處理流。
輸入參數:
- output_stream_id:現有輸出流的 ID,其大小和格式適合重新處理。
- reprocess_stream_ops:用於取得和釋放該流的緩衝區的函數指標結構。底層流將使用與輸出流相同的圖形緩衝區句柄。
輸出參數:
- Stream_id:標識該流的無符號整數。該值用於傳入請求以識別流以及釋放流。這些 id 與輸入流 id 分開編號。
HAL 用戶端必須始終在釋放其所基於的輸出流之前釋放重新處理流。
int(* allocate_stream)(const structcamera2_device *,uint32_t寬度,uint32_t高度,int格式, constcamera2_stream_ops_t *stream_ops,uint32_t *stream_id,uint32_t *format_actual,ops,uint32_t *stream_id,uint32_t *format_actual,uint3231) |
分配流:
分配一個新的輸出流供使用,由輸出緩衝區寬度、高度、目標以及可能的像素格式定義。如果成功,則傳回新流的 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 裝置可能需要同時出隊的最大緩衝區數。設備同時出隊的緩衝區數不得超過此值。
int(*construct_default_request)(const structcamera2_device *,intrequest_template, camera_metadata_t **request) |
int(* dump)(const structcamera2_device *, int fd) |
int(*flush_captures_in_progress)(const structcamera2_device *) |
int(* get_in_progress_count)(const structcamera2_device *) |
int(* get_instance_metadata)(const structcamera2_device *,camera_metadata **instance_metadata) |
int(* get_metadata_vendor_tag_ops)(const structcamera2_device *,vendor_tag_query_ops_t **ops) |
int(* notification_request_queue_not_empty)(const structcamera2_device *) |
int(* register_stream_buffers)(const structcamera2_device *,uint32_tstream_id,intnum_buffers,buffer_handle_t*buffers) |
int(*release_reprocess_stream)(const structcamera2_device *,uint32_tstream_id) |
int(*release_stream)(const structcamera2_device *,uint32_tstream_id) |
int(* set_frame_queue_dst_ops)(const structcamera2_device *, constcamera2_frame_queue_dst_ops_t *frame_dst_ops) |
int(* set_notify_callback)(const structcamera2_device *, camera2_notify_callbacknotify_cb ,void *user) |
int(* set_request_queue_src_ops)(const structcamera2_device *, constcamera2_request_queue_src_ops_t *request_src_ops) |
int(*trigger_action)(const structcamera2_device *,uint32_ttrigger_id,int32_text1,int32_text2) |
該結構的文檔是從以下文件產生的: