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

浙公网安备 33010602011771号