【转】 mtk平台camera流程原理(转+改)
2010-09-04 13:11
766 查看
转载自 zhaigangvvv
最终编辑 zhaigangvvv
最终编辑 zhaigangvvv
以23C的平台为例子。 1. mmi_camera_entry_app_screen 进入MMI,CAMERA进行分配动态内存,供采集数据处理。 2. mmi_camera_entry_app_screen_internal,进入判断T卡等环境相关,---》CAMERA_ENTER_STATE(CAMERA_STATE_PREVIEW),进入预览状态,mmi_camera_entry_preview_state,获取用户的对CAMERA的设置参数,如大小,特效等参数。同时,注册进入CAMERA后的快捷键,为CAMERA的界面,画OSD层,画出左右软键到OSD LAYER的BUFFER中,通过该函数mmi_camera_preview_set_blt_layer合并OSD层和基层,通过函数gdi_layer_blt_previous实现把合并后的层数据刷到LCD上。 3. mmi_camera_preview_start,开始进入CAMERA预览状态,获得并初始化CAMERA驱动所要的设置参数(camera_setting_data),通过gdi_layer_push_and_set_active函数激活CAMERA的PREVIEW层,也就是预览时的BUFFER用来保存SENSOR输出的数据。 4. mdi_camera_preview_start, --》mdi_camera_preview_start_internal,设置好状态,准备打开SENSOR了,取得驱动需要的各种参数(cam_preview_data), 5. media_cam_preview,发送消息到下层,通知打开SENSOR,设置好CAMERA预览的事件, 6. cam_preview_req_hdlr,下层开始启动CAMERA预览事件。 接下来,预览的刷屏都是通过SENSOR的VSYC接到中断上来实现的,每来个VSYC中断,把PREVIEW LAYER的BUFFER,经过YUV-RGB的转换,通过DMA配置来刷到LCD上。 由于MTK把刷屏的那部分没有开放,所以跟到6就跟不下去了,在6那里有几个CAM_SET_EVENT(CAM_EVT_PREVIEW);由于对MTK的操作系统不是很熟悉,不知道这句话是什么意思,#define CAM_SET_EVENT(evt_) do{ / kal_set_eg_events(cam_context_p->cam_event, (evt_),KAL_OR);/ CAM_SET_EVT(evt_,__LINE__); / } while(0) 预览过程中通过一个while循环不断发中断完成 |
相关文章推荐
- MTK 平台上如何给 camera 添加一种 preview size
- MTK平台相关总结#########[FAQ18279]开机时间慢分析 android 系统重启关机流程分析
- LCD显示原理 && MTK平台LCM显存大小的计算 && mtk6589LCD显示子系统
- LK流程-----基于MTK平台
- [MTK 驱动开发]MTK CAMERA 流程
- MTK平台camera菜单项,相互限制修改
- 基于MTK平台的camera 移植总结
- MTK camera 闪光灯Flashlight驱动调试流程
- MTK 平台上如何给 camera 添加一种 preview size
- MTK Android Camera 运行流程
- MTK 平台基带原理
- MTK 平台Camera 驱动架构
- MTK Android Camera 运行流程-app到底层
- MTK平台camera AF马达驱动调试流程分析
- MTK平台-俄罗斯方块游戏移植流程(傻瓜式)
- preloader流程----基于MTK平台
- MTK平台下Battery驱动分析及充电流程
- 电子商务平台支付接口开发原理及流程
- MTK平台下Battery驱动分析及充电流程
- mtk 平台 CAMERA 驱动浅析