camera_device_ops 結構參考

camera_device_ops 結構參考

#include < camera.h >

資料欄位

整數(* set_preview_window )(結構camera_device *,結構preview_stream_ops *視窗)
空白(* set_callbacks )(結構camera_device *, camera_notify_callback notification_cb, camera_data_callback data_cb, camera_data_timestamp_callback data_cb_timestamp, camera_request_memory get_memory
空白(*啟用_訊息類型)(結構camera_device *,int32_t訊息類型)
空白(* disable_msg_type )(結構camera_device *,int32_t msg_type)
整數(* msg_type_enabled )(結構camera_device *,int32_t msg_type)
整數(*開始預覽)(結構camera_device *)
空白(* stop_preview )(結構camera_device *)
整數(* Preview_enabled )(結構camera_device *)
整數(* store_meta_data_in_buffers )(結構camera_device *,int啟用)
整數(*開始錄製)(結構camera_device *)
空白(*停止錄製)(結構camera_device *)
整數(*錄音_啟用)(結構camera_device *)
空白(* release_recording_frame )(struct camera_device *,const void *opaque)
整數(*自動對焦)(結構camera_device *)
整數(*取消自動對焦)(結構camera_device *)
整數(* take_picture )(結構camera_device *)
整數(*取消圖片)(結構camera_device *)
整數(* set_parameters )(struct camera_device *, const char *parms)
字元 *(* get_parameters )(結構camera_device *)
空白(* put_parameters )(結構camera_device *,字元*)
整數(*傳送指令)(結構camera_device *,int32_t cmd,int32_t arg1,int32_t arg2)
空白(*釋放)(結構camera_device *)
整數(*轉儲)(結構camera_device *,int fd)

詳細說明

定義位於檔案camera.h的第99行。

現場文檔

int(* auto_focus)(結構camera_device *)

啟動自動對焦,當對焦完成時,會使用 CAMERA_MSG_FOCUS 呼叫通知回呼例程。如果需要再次自動對焦,autoFocus() 將會再次呼叫。

定義位於檔案camera.h的第227行。

int(*cancel_auto_focus)(結構camera_device *)

取消自動對焦功能。如果自動對焦仍在進行中,此功能將取消自動對焦。無論是否正在進行自動對焦,此功能都會將焦點位置還原為預設值。如果相機不支援自動對焦,則此操作無效。

定義位於檔案camera.h的第235行。

int(*cancel_picture)(結構camera_device *)

取消用 takePicture 啟動的圖片。當沒有拍照時呼叫此方法是無操作的。

定義位於檔案camera.h的第246行。

void(*disable_msg_type)(結構camera_device *,int32_t msg_type)

禁用一條訊息或一組訊息。

一旦收到對disableMsgType(CAMERA_MSG_VIDEO_FRAME)的調用,相機HAL不應依賴其客戶端調用releaseRecordingFrame()來釋放在disableMsgType(CAMERA_MSG_VIDEO_FRAME)調用之前和之後相機HAL發出的視訊幀。呼叫disableMsgType(CAMERA_MSG_VIDEO_FRAME)後,相機HAL用戶端不得修改/存取任何錄影畫面。

定義位於檔案camera.h的第132行。

int(* dump)(結構camera_device *, int fd)

相機硬體的轉儲狀態

定義位於檔案camera.h的第282行。

void(*enable_msg_type)(結構camera_device *,int32_t msg_type)

以下三個函數都採用 msg_type,它是 include/ui/Camera.h 中定義的訊息的位元遮罩 啟用一則訊息或一組訊息。

定義位於檔案camera.h的第120行。

char*(* get_parameters)(結構camera_device *)

檢索相機參數。如果 put_parameters 不為 NULL,則相機 HAL 傳回的緩衝區必須使用 put_parameters 傳回給它。

定義位於檔案camera.h的第258行。

int(* msg_type_enabled)(結構camera_device *, int32_t msg_type)

查詢是否啟用一則訊息或一組訊息。請注意,這是一個 AND 操作,如果查詢的任何訊息關閉,則傳回 false。

定義位於檔案camera.h的第139行。

int(* Preview_enabled)(結構camera_device *)

如果啟用預覽,則傳回 true。

定義位於檔案camera.h的第154行。

void(* put_parameters)(結構camera_device *, char *)

當我們呼叫 get_parameters 時,相機 HAL 使用自己的記憶體向我們傳遞參數。如果 put_parameters 不為 NULL,則使用此函數將記憶體傳回相機 HAL。如果 put_parameters 為 NULL,則必須使用 free() 來釋放記憶體。

定義位於檔案camera.h的第265行。

int(* 錄音啟用)(結構camera_device *)

如果啟用錄音則傳回 true。

定義位於檔案camera.h的第208行。

void(*釋放)(結構camera_device *)

釋放該物件所擁有的硬體資源。請注意,這不是在析構函數中完成的。

定義位於檔案camera.h的第277行。

void(*release_recording_frame)( structcamera_device *,constvoid*opaque)

釋放先前由 CAMERA_MSG_VIDEO_FRAME 傳回的記錄訊框。

相機 HAL 用戶端有責任在相機 HAL 收到對 disableMsgType(CAMERA_MSG_VIDEO_FRAME) 的呼叫之前釋放相機 HAL 發出的錄影畫面。在收到對disableMsgType(CAMERA_MSG_VIDEO_FRAME)的呼叫後,相機HAL負責管理錄影畫面的生命週期。

定義位於檔案camera.h的第219行。

int(* send_command)(結構camera_device *,int32_t cmd,int32_t arg1,int32_t arg2)

向相機驅動程式發送命令。

定義位於檔案camera.h的第270行。

void(* set_callbacks)(結構camera_device *, camera_notify_callback notification_cb, c ​​amera_data_callback data_cb, c​​amera_data_timestamp_callback data_cb_timestamp, camera_request_memory get_memory,void_memory)

設定通知和資料回調

定義位於檔案camera.h的第105行。

int(* set_parameters)(struct camera_device *, const char *parms)

設定相機參數。如果任何參數無效或不受支持,則傳回 BAD_VALUE。

定義位於檔案camera.h的第252行。

int(* set_preview_window)(結構camera_device *,結構preview_stream_ops *視窗)

設定預覽幀發送到的 ANativeWindow

定義位於檔案camera.h的第101行。

int(* start_preview)(結構camera_device *)

啟動預覽模式。

定義位於檔案camera.h的第144行。

int(* start_recording)(結構camera_device *)

啟動錄音模式。當記錄影像可用時, CAMERA_MSG_VIDEO_FRAME 訊息會與對應的訊框一起傳送。在客戶端呼叫disableMsgType(CAMERA_MSG_VIDEO_FRAME)之前,每個記錄幀必須由相機HAL客戶端透過releaseRecordingFrame()釋放。在客戶端呼叫disableMsgType(CAMERA_MSG_VIDEO_FRAME)後,攝影機HAL負責管理錄影畫面的生命週期,客戶端不得修改/存取任何錄影畫面。

檔案camera.h198行的定義。

無效(* stop_preview)(結構camera_device *)

停止先前開始的預覽。

定義位於檔案camera.h的第149行。

void(* stop_recording)(結構camera_device *)

停止先前開始的錄音。

定義位於檔案camera.h的第203行。

int(* store_meta_data_in_buffers)(結構camera_device *,int啟用)

請相機 HAL 將元資料或實際 YUV 資料儲存在透過 CAMERA_MSG_VIDEO_FRAME 發送的視訊緩衝區中以進行錄製會話。如果未調用,預設相機 HAL 行為是將真實的 YUV 資料儲存在視訊緩衝區中。

該方法應在 startRecording() 之前呼叫才能生效。

如果元資料儲存在視訊緩衝區中,則由視訊緩衝區的接收器來解釋內容並藉助緩衝區中的元資料找到實際的幀資料。如何完成此操作超出了本方法的範圍。

某些相機 HAL 可能不支援在視訊緩衝區中儲存元數據,但所有相機 HAL 都應支援在視訊緩衝區中儲存真實的 YUV 資料。如果相機 HAL 在請求執行操作時不支援將元資料儲存在視訊緩衝區中,則必須傳回 INVALID_OPERATION。對於相機 HAL 來說,將元資料而不是實際幀資料直接傳遞給視訊編碼器非常有用,因為如果視訊尺寸很大,則未壓縮的幀資料量可能會非常大。

參數
使能夠如果為 true,則指示相機 HAL 將元資料儲存在視訊緩衝區中; false 指示相機 HAL 將真實的 YUV 資料儲存在視訊緩衝區中。
退貨
就成功了。

定義位於檔案camera.h的第186行。

int(* take_picture)(結構camera_device *)

拍張照片。

定義位於檔案camera.h的第240行。


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