A31S-camera流程
来源:互联网 发布:匿名函数php引用变量 编辑:程序博客网 时间:2024/06/05 12:39
open函数分析
Camera camera = Camera.open(int cameraId);
调用下面文件提供的接口
\\192.168.1.122\ygm\A31S-source\android\frameworks\base\core\java\android\hardware\Camera.java
该文件中会调用new Camera(i)
该构造函数中调用 native_setup(new WeakReference<Camera>(this), cameraId, packageName);
native字段可以确定native_setup调用的就是jni接口
\\192.168.1.122\ygm\A31S-source\android\frameworks\base\core\jni\android_hardware_Camera.cpp
static JNINativeMethod camMethods[] = {
{ "native_setup",
"(Ljava/lang/Object;ILjava/lang/String;)V",
(void*)android_hardware_Camera_native_setup }
}
即调用该文件中的android_hardware_Camera_native_setup函数,该函数中调用Camera::connect即是client端的函数
可以参考:
\\192.168.1.122\ygm\A31S-source\android\frameworks\av
调用\camera下面的Camera.cpp中的-->CameraBase.cpp中的connect函数,该函数则调用const sp<ICameraService>& cs = getCameraService();
最终调用服务端的connect,来自文件\\192.168.1.122\ygm\A31S-source\android\frameworks\av\services\camera\libcameraservice\
CameraService.cpp
connect函数中则建立client对象并调用client->initialize(mModule);来自文件
\\192.168.1.122\ygm\A31S-source\android\frameworks\av\services\camera\libcameraservice\device1\
CameraHardwareInterface.h
接着就找找open函数,即来自文件
\\192.168.1.122\ygm\A31S-source\android\hardware\samsung_slsi\exynos5\libcamera
static hw_module_methods_t camera_module_methods = {
open : HAL_camera_device_open
};
该函数中目的得到static camera_device_t *g_cam_device;再
g_cam_device->priv = new ExynosCameraHWInterface(cameraId, g_cam_device);
构造函数中
m_secCamera = ExynosCamera::createInstance();
m_secCamera->create(cameraId)
m_previewThread = new PreviewThread(this);
m_videoThread = new VideoThread(this);
m_autoFocusThread = new AutoFocusThread(this);
m_pictureThread = new PictureThread(this);
Camera camera = Camera.open(int cameraId);
调用下面文件提供的接口
\\192.168.1.122\ygm\A31S-source\android\frameworks\base\core\java\android\hardware\Camera.java
该文件中会调用new Camera(i)
该构造函数中调用 native_setup(new WeakReference<Camera>(this), cameraId, packageName);
native字段可以确定native_setup调用的就是jni接口
\\192.168.1.122\ygm\A31S-source\android\frameworks\base\core\jni\android_hardware_Camera.cpp
static JNINativeMethod camMethods[] = {
{ "native_setup",
"(Ljava/lang/Object;ILjava/lang/String;)V",
(void*)android_hardware_Camera_native_setup }
}
即调用该文件中的android_hardware_Camera_native_setup函数,该函数中调用Camera::connect即是client端的函数
可以参考:
\\192.168.1.122\ygm\A31S-source\android\frameworks\av
调用\camera下面的Camera.cpp中的-->CameraBase.cpp中的connect函数,该函数则调用const sp<ICameraService>& cs = getCameraService();
最终调用服务端的connect,来自文件\\192.168.1.122\ygm\A31S-source\android\frameworks\av\services\camera\libcameraservice\
CameraService.cpp
connect函数中则建立client对象并调用client->initialize(mModule);来自文件
\\192.168.1.122\ygm\A31S-source\android\frameworks\av\services\camera\libcameraservice\device1\
CameraHardwareInterface.h
接着就找找open函数,即来自文件
\\192.168.1.122\ygm\A31S-source\android\hardware\samsung_slsi\exynos5\libcamera
static hw_module_methods_t camera_module_methods = {
open : HAL_camera_device_open
};
该函数中目的得到static camera_device_t *g_cam_device;再
g_cam_device->priv = new ExynosCameraHWInterface(cameraId, g_cam_device);
构造函数中
m_secCamera = ExynosCamera::createInstance();
m_secCamera->create(cameraId)
m_previewThread = new PreviewThread(this);
m_videoThread = new VideoThread(this);
m_autoFocusThread = new AutoFocusThread(this);
m_pictureThread = new PictureThread(this);
0 0
- A31S-camera流程
- android Camera 应用流程 --Camera
- Camera启动基本流程
- camera 控制流程
- Android Camera调用流程
- QRD7xxx camera调用流程
- camera启动调用流程
- Android Camera 调用流程
- Android Camera 调用流程
- Android Camera调用流程
- Android Camera调用流程
- Android Camera调用流程
- Android Camera open流程
- Android Camera 运行流程
- Android Camera调用流程
- Android Camera调用流程
- Android Camera 运行流程
- Android Camera 运行流程
- n个人有n个帽子,每个人都不带自己帽子的可能性
- 单例模式
- 【伤感日志】 为你放弃了骄傲 却终究无法博你一笑
- 结合typedef更为直观的应用函数指针
- Android游戏开发cocos-2d中精灵的动作测试
- A31S-camera流程
- 使用BaseAdapter时,getItemAtPosition返回值问题
- 根据多个汉字,获得每个汉字的首字母集
- TCP与UDP的区别
- 会话控制
- hadoop 中文词频排序 top-k 问题
- 为什么过了35岁就不适合做技术了呢?
- 数据挖掘Data Set收集
- 房地产供需逆转说正不正确