zoukankan      html  css  js  c++  java
  • 高通camera学习笔记二

    高通camera daemon进程


    1.概述
    高通在Android的camera架构中,依旧沿用了其传统的方式,将其自身的一些处理放在一个daemon进程中。这部分内容出于应用于driver之间,是为了保护自身及硬件厂商的利益而专门弄出来的一个东东。其它各家平台也采用类似的方式将这部分的处理放在HAL层处理。

    2.进程的入口
        做为一个单独的进程,那肯定是有其main函数入口的。在vendorqcomproprietarymm-cameramm-camera2server-imagingserver.c文件中可以看到这个main函数。在这个函数中主要做了以下几件事情。
        1.找到服务节点的名字并打开此节点
            get_server_node_name(serv_hal_node_name)
            ......
            hal_fd->fd[0] = open(dev_name, O_RDWR | O_NONBLOCK); //这里dev_name为节点名如"/dev/serv_hal_node_name"
        2.初始化模块。目前有sensor、iface、isp、stats、pproc及imglib六个模块(见笔记一)
            server_process_module_init();
        3.进入主循环来处理来自HAL及MCT的事件及消息,处理完之后的结果反馈给kernel(msm.c)
            RD_FD_HAL
                ----> server_process_hal_event(&event)。此函数如果返回真,表示事件消息已经传给了MCT,这时不需要发送CMD ACK给kernel,因为MCT处理结束后会发出通知。如果返回假,表示没有传到MCT,此时需要立即发送CMD ACK到kernel,以便HAL发送此消息的线程阻塞住。
            RD_DS_FD_HAL —— 通过domain socket传自HAL的消息
                ----> server_process_hal_ds_packet(fd_info->fd
            RD_PIPE_FD_MCT —— 来自media controller的消息

  • 相关阅读:
    接口测试用例设计
    UI测试用例设计,场景测试法
    接口测试
    JsonSchema和JsonSchemaValidator
    接口测试指导方案 转:紫漪
    appium实例1:启动淘宝app
    性能测试入门
    性能测试结果分析
    Django解决 'ascii' codec can't encode characters in position
    如何解决 Django中出现的 [Errno 13] Permission denied问题
  • 原文地址:https://www.cnblogs.com/potato-coffee/p/4173742.html
Copyright © 2011-2022 走看看