摘要: 我们知道,在Android Camera体系结构中,如何高效的实现内存共享是非常重要的。因为从V4L2获取到Camera数据后,可能要交给NativeWindow显示,也可能交给VPU编码,也可能交给Java层,执行其他操作等。这其中必然会涉及进程间通讯问题。那么如果每次的数据消费都进行 memcp 阅读全文
posted @ 2018-01-22 17:52 rain-dot 阅读(321) 评论(0) 推荐(0) 编辑
摘要: QCamera 中 是需要进程间通讯的。因为 Camera Sensor 和 ISP Driver 在另一个Demon进程中,CameraHAL进程是需要和Demon进程通讯,那么使用的通讯方式是 UNIX Domain Socket IPC. Domain Socket : http://blog 阅读全文
posted @ 2018-01-20 12:40 rain-dot 阅读(336) 评论(1) 推荐(0) 编辑
摘要: man page: http://man7.org/linux/man-pages/man2/poll.2.html poll 是一种多路复用的IO机制。使用 poll 可以监听多个文件描述符,一但某个文件描述符就绪(一般是读就绪或者写就绪),能够通知程序进行响应的读写操作。 poll 本质是一种同 阅读全文
posted @ 2018-01-10 18:50 rain-dot 阅读(652) 评论(0) 推荐(0) 编辑
摘要: 需求:一个新的线程,监听和分发处理一些命令。 在实际的应用中,这种使用场景是非常多见的。 1. 新建线程 太简单了,无话可说。 2. 线程的其他控制函数 3. 线程主体 4. 线程目的 该线程的主要目的是为了 监听 Kernel或者 Demon 中的事件。 阅读全文
posted @ 2018-01-09 19:04 rain-dot 阅读(887) 评论(0) 推荐(0) 编辑
摘要: 1. cam_list 链表就不说了,和内核链表的实现思想一致。 2. cam_queue 为什么定义 queue? 目的就是多线程使用,可以一个线程不断的读 queue ,其他线程不断的写 queue,这样可以实现事件的统一分发处理。常用机制。 优点: 操作灵活,数据区域完全由用户自己定义。给用户 阅读全文
posted @ 2018-01-09 17:27 rain-dot 阅读(392) 评论(0) 推荐(0) 编辑
摘要: 1. 什么是忙碌等待? 在软件工程中,忙碌等待(也称自旋;英语:Busy waiting、busy-looping、spinning)是一种以进程反复检查一个条件是否为真为根本的技术,条件可能为键盘输入或某个锁是否可用。忙碌等待也可以用来产生一个任意的时间延迟,若系统没有提供生成特定时间长度的方法, 阅读全文
posted @ 2018-01-09 17:09 rain-dot 阅读(270) 评论(0) 推荐(0) 编辑