2013年4月10日
摘要: link 这个链接指向本文的源代码link 这个链接指向 v4l2 标准文档,文档中包含sample code。这份文档的标题是"Video for Linux Two API Specification",如果链接失效可以用这个标题重新google。isp camera 驱动分为 sensor 驱动和 isp controller 驱动两部分,其中sensor 驱动就是摄像头芯片的驱动。isp controller 驱动实现的是 v4l2 驱动架构中 soc_camera_host 接口,主要负责 isp dma 的管理和一些 v4l2 的标准操作。1. soc_came 阅读全文
posted @ 2013-04-10 22:37 simon_god 阅读(3249) 评论(0) 推荐(0) 编辑
摘要: V4L2的是V4L的第二个版本。原来的V4L被引入到Linux内核2.1.x的开发周期后期。 Video4Linux2修正了一些设计缺陷,并开始出现在2.5.X内核。 Video4Linux2驱动程序包括Video4Linux1应用的兼容模式,但实际上,支持是不完整的,并建议V4L2的设备使用V4L2的模式。要想了解 V4l2 有几个重要的文档是必须要读的, Documentation/video4linux目录下的V4L2-framework.txt和videobuf、V4L2的官方API文档V4L2 API Specification , drivers/media/video目录下的vi 阅读全文
posted @ 2013-04-10 22:32 simon_god 阅读(796) 评论(0) 推荐(0) 编辑
摘要: 之前在 Android Camera 的执行流程http://blog.chinaunix.net/uid-26765074-id-3499537.html 这篇文章中已经详细介绍了 Android Camera app到调用open打开camera 设备的完成过程,但是只是到此为止,并未对较底层的操作控制等做任何分析, 今天就要进入这个环节了 这里就直接从open那个方法开始了,先说一下这个open是怎么被调用的实例化Camera Hal接口 hardware,hardware调用initialize()进入HAL层打开Camear驱动。 CameraHardwareInterface中i. 阅读全文
posted @ 2013-04-10 22:30 simon_god 阅读(1998) 评论(0) 推荐(0) 编辑
摘要: 一 首先既然Camera是利用binder通信,它肯定要将它的service注册到ServiceManager里面,以备后续Client引用,那么这一步是在哪里进行的呢?细心的人会发现,在frameworks\base\media\mediaserver\Main_MediaServer.cpp下有个main函数,可以用来注册媒体服务。没错就是在这里,CameraService完成了服务的注册,相关代码如下:int main(int argc, char** argv) { sp<ProcessState> proc(ProcessState::self()); sp<ISe 阅读全文
posted @ 2013-04-10 22:29 simon_god 阅读(1394) 评论(0) 推荐(0) 编辑