分享到
- 一键分享
- QQ空间
- 新浪微博
- 百度云收藏
- 人人网
- 腾讯微博
- 百度相册
- 开心网
- 腾讯朋友
- 百度贴吧
- 豆瓣网
- 搜狐微博
- 百度新首页
- QQ好友
- 和讯微博
- 更多...
百度分享
DM642,DM643视频采集基本架构--程序注释
落鹤生 发布于 2010-01-15 21:40 点击: 995次
|
来自:hi.baidu.com
|
本文以实际代码的方式介绍TI德州仪器的DM642,DM643视频采集基本架构。
分享到
- 一键分享
- QQ空间
- 新浪微博
- 百度云收藏
- 人人网
- 腾讯微博
- 百度相册
- 开心网
- 腾讯朋友
- 百度贴吧
- 豆瓣网
- 搜狐微博
- 百度新首页
- QQ好友
- 和讯微博
- 更多...
百度分享
DM642,DM643视频采集基本架构--程序注释
- #include <std.h> //如果使用C语言,必须将此文件作为第一个头文件。
- #include <tsk.h>
- #include <sem.h>
- #include <gio.h>
- #include <csl_dat.h>
- #include <csl_cache.h> //使用CSL库,要用到的一些头文件,可参考CSL
- #include <fvid.h> //视频驱动头文件
- #include <edc.h>
- #include <vport.h>
- #include <vportcap.h>
- #include <vportdis.h>
- #include <saa7105.h>
- #include <tvp51xx.h>
- #include <dec643.h> //芯片头文件。
- #include <evmdm642_capParamsSDTVDefault.h> //捕获设备配置文件
- #include <evmdm642_disParamsVGADefault.h> //如用VGA显示,需要的显示设备配置文件
- #include "colorbar.h" //如显示彩色滚动条,需要,否则不需要。
- VPORT_PortParams EVMDM642_vCapParamsPort
- = EVMDM642_CAP_PARAMS_PORT_EMBEDDED_DEFAULT;
- static VPORTCAP_Params EVMDM642_vCapParamsChan
- = EVMDM642_CAP_PARAMS_CHAN_EMBEDDED_DEFAULT(PAL720);
- static TVP51XX_ConfParams EVMDM642_vCapParamsTVP51XX
- = EVMDM642_CAP_PARAMS_TVP51XX_EMBEDDED_DEFAULT(PAL601, COMPOSITE, 0);
- static const short coeffs[5] = {0x2543, 0x3313, -0x0C8A, -0x1A04, 0x408D};
- VPORT_PortParams EVMDM642_vDisParamsPort
- = EVMDM642_DIS_PARAMS_PORT_DEFAULT;
- static VPORTDIS_Params EVMDM642_vDisParamsChan
- = EVMDM642_DIS_PARAMS_CHAN_RGB565_DEFAULT(VGA);
- static SAA7105_ConfParams EVMDM642_vDisParamsSAA7105
- = EVMDM642_DIS_PARAMS_SAA7105_RGB565_DEFAULT(VGA);
- extern Int EXTERNALHEAP;
- main()
- {
- CSL_init();
- CACHE_clean(CACHE_L2ALL, 0, 0);
- CACHE_setL2Mode(CACHE_256KCACHE);
- CACHE_enableCaching(CACHE_EMIFA_CE00);
- CACHE_enableCaching(CACHE_EMIFA_CE01);
- DAT_open(DAT_CHAANY, DAT_PRI_LOW, DAT_OPEN_2D);
- }
- void tskVideoLoopback()
- {
- Int i;
- Int status;
- Int frames = 0;
- FVID_Handle disChan;
- FVID_Frame *disFrameBuf;
- FVID_Handle capChan;
- FVID_Frame *capFrameBuf;
- Int numLinesDis = EVMDM642_vDisParamsChan.imgVSizeFld1;
- Int numLinesCap = (EVMDM642_vCapParamsChan.fldYStop1 -
- EVMDM642_vCapParamsChan.fldYStrt1+1)*2;
- Int numLines = (numLinesDis > numLinesCap) ? numLinesCap : numLinesDis;
- Int numPixels = (EVMDM642_vCapParamsChan.fldXStop1 -
- EVMDM642_vCapParamsChan.fldXStrt1+1);
- Int capLinePitch = (EVMDM642_vCapParamsChan.fldXStop1 -
- EVMDM642_vCapParamsChan.fldXStrt1+1);
- Int disLinePitch = EVMDM642_vDisParamsChan.imgHSizeFld1;
- EVMDM642_vDisParamsChan.segId = EXTERNALHEAP;
- EVMDM642_vDisParamsSAA7105.hI2C = DEC643_I2C_hI2C;
- EVMDM642_vCapParamsChan.segId = EXTERNALHEAP;
- EVMDM642_vCapParamsTVP51XX.hI2C = DEC643_I2C_hI2C;
- capChan = FVID_create("/VP1CAPTURE/A/1",
- IOM_INPUT, &status, (Ptr)&EVMDM642_vCapParamsChan, NULL);
- disChan = FVID_create("/VP2DISPLAY", IOM_OUTPUT,
- &status, (Ptr)&EVMDM642_vDisParamsChan, NULL);
- FVID_control(disChan, VPORT_CMD_EDC_BASE + EDC_CONFIG,
- (Ptr)&EVMDM642_vDisParamsSAA7105);
- FVID_control(capChan, VPORT_CMD_EDC_BASE + EDC_CONFIG,
- (Ptr)&EVMDM642_vCapParamsTVP51XX);
- CACHE_clean(CACHE_L2ALL, 0, 0);
- FVID_control(disChan, VPORT_CMD_START, NULL);
- FVID_control(capChan, VPORT_CMD_START, NULL);
- FVID_alloc(disChan, &disFrameBuf);
- FVID_alloc(capChan, &capFrameBuf);
- frames ++;
- while(1)
- {
- for(i = 0; i < numLines; i++)
- {
- yc2rgb16(coeffs, capFrameBuf->frame.iFrm.y1 + i * (capLinePitch),
- capFrameBuf->frame.iFrm.cb1 + (capLinePitch >> 1) * i,
- capFrameBuf->frame.iFrm.cr1 + (capLinePitch >> 1) * i,
- disFrameBuf->frame.rpFrm.buf + (disLinePitch << 1) * i,
- numPixels);
- }
- FVID_exchange(capChan, &capFrameBuf);
- CACHE_clean(CACHE_L2ALL, 0, 0);
- FVID_exchange(disChan, &disFrameBuf);
- frames ++;
- }
- }
|
-
-
- v4l2视频采集驱动框架(vfe, camera i2c driver,v4l2_subdev等之间的联系)
2014年的博文就从这篇文章开始吧,又一次回到linux,过去的一年从dm3730再到dm6437,这次来到了全志的A31 4核处理器,每一次都是全新的事物,但是偶然间还是可以感受到对新事物的消化能力 ...
- 基于DM642 RAW采集格式的视频驱动开发及应用
摘 要:为解决C64X系列数字信号处理器(DSP)视频驱动不能应用于原始数据格式(RAW)采集格式的问题,设计了DM642和电耦合元件(CCD)高清传感器的数据传输接口,并分析.修改用于标准格式的视频 ...
- 音视频直播--技术架构
前言 今天和大家讲一下音视频直播技术架构.之前的关注点主要放在客户端如何采集音频数据上,经过这两天的思考,我觉得应该先给大家讲一下音视频直播技术架构,这样更容易从整体上理解视频直播技术是如何运转的,之 ...
- android camera2 采集,视频采集:Android平台基于Camera 2的实现
前言 这篇文章简单介绍下移动端Android系统下利用Camera2相关API进行视频采集的方法. Camera2是谷歌在Android 5.0新增的用来替代Camera1操作摄像头的一个全新的API ...
- Android 音视频采集与软编码总结
请尊重原创,转载请注明出处:http://blog.csdn.net/mabeijianxi/article/details/75807435(本文已在 "任玉刚" 微信公众号发布 ...
- (转载)视频采集学习笔记
视频采集学习笔记 第一节.视频采集 一.二者的不同点: 说起视频捕捉问题,我们先要来看一下视频捕捉卡.根据使用的驱动程序的不同来分类,目前市场上大致有两种捕捉卡:VFW (Video for Wi ...
- C#FFmpeg视频采集与推送RTMP服务器代码思路整理
C#视频采集与推送RTMP服务器代码思路整理:在看过FFmpeg后是否认为写C#的视频流采集和推送还是一头雾水啊?深有此感.领导是C#的高手,说可以通过C或C++的代码直接复制粘贴到C#工程然后进行适 ...
- 短视频开发SDK 架构设计实践
短视频开发SDK 架构设计实践 短视频发展史 图 1 图 1 所示是短视频及直播的发展史,众所周知,2016 年是直播元年,在这期间诞生了很多直播平台,比如熊猫.映客.斗鱼等:而在 2017 年,短视 ...
- H.264视频监控系统架构
H.264视频监控系统架构 http://blog.csdn.net/ailiandeziwei/article/details/7167889 一.H.264介绍 H.264是一种视频压缩编码标准. ...