1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Camera 分析

Camera 分析 话说camera模块,从上层到底层一共包含着这么几个部分: 1、apk------java语言 2、camera的java接口----java语言rameworks/base/core/java/android/hardware/Camera.java 3、camera的java接口的具体实现,即所谓的JNI-----(java—C++) native_setup(Object camera_this, int cameraId);4、camera客户端-----C++语言 5、camera服务器----C++语言 部分代码 1.mModule 怎么赋值的呢是void CameraService::onFirstRef()调用时候去相关接口 找了半天也就是它这个函数里边有hw_get_module()这个函数,一看名字就知道是获取hardware的,不找它找谁啊。那么onFirstRef()函数又是何时调用的? onFirstRef()属于其父类RefBase,该函数在强引用sp新增引用计数时调用,什么意思?就是当 有sp包装的类初始化的时候调用。这里在frameworks/base/services/camera/libcameraservice/CameraService.h 中class CameraService :中有定义 2. client-initialize(mModule) client根据deviceVersion 决定是哪个类实例CameraClient、Camera2Client) 以CameraClient为例 6、camera硬件抽象层,即所谓的HAL------C++语言 open 函数最后一段就是实例化具体某个摄像头 7、camera驱动 如上也是camera的整个调用流程. 但是,如此泛泛而谈,实在是太空了.想当初刚开始搞camera,单单驱动的V4L2已经够头大了,何况要涉及调试具体sensor的图像帧率,频率,输出格式等等,更不要说什么DMA对齐,图像闪动,色彩不对之类的疑难杂症了. 还是分别讲讲它们分别的作用吧 Camera驱动在哪里呢?我们以 首先我们shell命令找到摄像头驱动名称 然后进入kernel搜索关键字 根据头文件一步步找到了 board-rk3168-tb.c主板加载文件 这是配置摄像头引脚,配错了的话就起不来了 还引用了rk30_camera.c文件 rk30_camera.c中引用了rk_camera.c 如何添加新的相机驱动? 修改文件 v4l2-chip-ident.hrk_camera.h、board-rk3168-tb-camera.c 曾加文件 gc0909.c gc0308.c 格式 详细修改

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档