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,void *用户)
空白(*启用_消息类型)(结构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, camera_data_callback data_cb, camera_data_timestamp_callback data_cb_timestamp, camera_request_memory get_memory,void *用户)

设置通知和数据回调

定义位于文件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