高通平台 camera open流程

以下介绍的是camera api1,camera hal1的流程

1.java调用
frameworks/base/core/java/android/hardware/Camera.java
+open(int cameraId)
+Camera(int cameraId) //new Camera()调用构造
+native_setup(new WeakReference<Camera>(this), cameraId, packageName); //调用native方法,传递Camera.java对象,id,调用的app包名称

2.jni调用(libandroid_runtime.so)
frameworks/base/core/jni/android_hardware_Camera.cpp
+android_hardware_Camera_native_setup(...) //调用此方法

frameworks/av/include/camera/Camera.h //camera头文件,方法实现在libcamera_client.so
+Camera::connect()

注:之所以能调用上述方法,是通过AndroidRuntime::registerNativeMethods(...) 注册了native_setup参数和方法android_hardware_Camera_native_setup的对应关系
{ "native_setup",
"(Ljava/lang/Object;ILjava/lang/String;)V",
(void*)android_hardware_Camera_native_setup },
第二行参数引用参数类型表示(L包名),I表示 jint,V表示void,即参数类型为:(Object,int,String)void
libandroid_runtime.so 将目录文件 frameworks/av/include编译进去了,所以Camera.h位于frameworks/av/include/camera/Camera.h

3

高通CamX与OpenCamera是两个不同的概念,CamX是高通公司的相机框架,而OpenCamera是一个开源的Android相机应用。因此,它们之间的代码流程是不同的。以下是OpenCamera的基本代码流程: 1. 初始化相机:OpenCamera会初始化相机设备,包括打开相机设备、配置相机参数(如分辨率、帧率、对焦模式等)。 2. 设置预览界面:OpenCamera会创建一个预览界面(SurfaceView或TextureView),用于显示相机预览画面。 3. 实现相机功能:OpenCamera实现了一系列的相机功能,如自动对焦、曝光调节、白平衡控制等。这些功能通过调用相机API来实现。 4. 拍照和录像:OpenCamera提供了拍照和录像功能。当用户点击拍照按钮时,OpenCamera会触发拍照操作,并保存照片到指定路径。而在录像模式下,OpenCamera会开始录制视频,并保存到指定路径。 5. 处理图像数据:OpenCamera在预览和拍照/录像过程中,会获取相机输出的图像数据,并进行处理。这可能包括图像增强、实时滤镜、人脸识别等操作。 6. 相机参数设置:OpenCamera还提供了一些相机参数的设置,如闪光灯模式、场景模式、ISO设置等。 7. 监听相机事件:OpenCamera会监听相机事件,如对焦完成、曝光完成等,以便在相应事件发生时作出相应的处理。 8. 释放相机资源:当不再需要使用相机时,OpenCamera会释放相机资源,包括关闭相机设备、释放预览界面等。 总的来说,OpenCamera的代码流程包括初始化相机、设置预览界面、实现相机功能、拍照和录像、处理图像数据、相机参数设置、监听相机事件和释放相机资源。这样就可以实现一个基本的相机应用程序。请注意,这只是一个简单的概述,实际的代码流程可能更加复杂和详细。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值