Conexant Bt878驱动及视频软件开发

1.前言

本文是对基于Conexant Bt878进行的驱动开发和软件开发进行的整理论述,驱动是基于WDM进行的开发,视频软件是基于DX8 SDK和DX9 SDK的directshow程序进行的开发,附加寄存器控制功能是通过windriver进行的开发
注:如果希望从0开始进行开发,请借鉴windriver或WDM的参考手册进行驱动开发,借鉴DX SDK手册进行视频软件开发
注2:通过本文操作可以获取驱动文件、视频软件及寄存器操作功能程序

2.驱动开发

重要网址:WDM Video Capture Driver
本文使用的驱动开发方式实际上是属于二次开发,具体方法如下,
(1)找到一份驱动,本文用到的是天敏SDK2000的驱动文件,安装后通过板卡配套的视频软件验证视频可以正常采集,保障驱动及安装过程正确
在这里插入图片描述
(2)由于公司出品的驱动及视频软件都有双向验证过程,更换板卡后会阻断程序运行,因此通过WDM Video Capture Driver->Download->btspy2.0.0.zip,通过btspy软件监测目前正常驱动下各通道的通道数、GPOE值、GPDATA值等信息,再通过btwdmdrvinstaller5.3.8.zip进行安装,将btspy产生的配置文件配置到安装过程中,安装后即可
注:如果安装失败或者希望获得独立安装文件,可以通过wdminstall-byhand5.3.8.zip文件进行手动配置,具体配置方法在wdminstall-byhand5.3.8.zip中有叙述,这个附加样例中的重要代码

HKR,"DriverData","Custom_VideoIns",0x00010001, 0x03, 0x00, 0x00, 0x00
HKR,"DriverData","Custom_AudioIns",0x00010001, 0x03, 0x00, 0x00, 0x00
HKR,"DriverData","Custom_Tuner",0x00010001, 0x00, 0x00, 0x00, 0x00
HKR,"DriverData","Custom_Svhs",0x00010001, 0x02, 0x00, 0x00, 0x00
HKR,"DriverData","Custom_GPIOMask",0x00010001, 0x0f, 0x30, 0x00, 0x00
HKR,"DriverData","Custom_VideoMux0",0x00010001, 0x02, 0x00, 0x00, 0x00
HKR,"DriverData","Custom_VideoMux1",0x00010001, 0x03, 0x00, 0x00, 0x00
HKR,"DriverData","Custom_VideoMux2",0x00010001, 0x01, 0x00, 0x00, 0x00
HKR,"DriverData","Custom_VideoMux3",0x00010001, 0x01, 0x00, 0x00, 0x00
HKR,"DriverData","Custom_AudioMux0",0x00010001, 0x02, 0x10, 0x00, 0x00
HKR,"DriverData","Custom_AudioMux1",0x00010001, 0x00, 0x00, 0x00, 0x00
HKR,"DriverData","Custom_AudioMux2",0x00010001, 0x02, 0x00, 0x00, 0x00
HKR,"DriverData","Custom_AudioMux3",0x00010001, 0x00, 0x00, 0x00, 0x00
HKR,"DriverData","Custom_AudioMux4",0x00010001, 0x02, 0x00, 0x00, 0x00
HKR,"DriverData","Custom_HasRadio",0x00010001, 0x00, 0x00, 0x00, 0x00
HKR,"DriverData","Custom_HasTV",0x00010001, 0x01, 0x00, 0x00, 0x00
3.视频软件开发
3.1 DX SDK版本选择

在实验过程中,本文同时进行了DX8和DX9 SDK的开发使用,在使用DX8的过程中在VC6的环境下开发没有问题,当转为vs2010的程序过程中发生了很多的报错,一一改正后仍出现“T”字符未定义等报错,未能解决,因此后续使用DX9进行的软件开发
注:在编译过程中需要使用DX9 SDK中的BaseClasses的编译,有debug、release等4个版本,需要根据你想使用的开发环境进行变异,如视频工程是使用vs2010,那么BaseClasses工程也使用vs2010进行编译,同时两个工程的debug及release版本需要对应,否则出现类型无法解析等问题

3.2 directshow开发

先使用DX9 SDK中的graphedit进行预先测试驱动是否正常,包括通道切换等功能的测试,使用十字通道、解析器、渲染器进行连接,点击运行即可看到视频界面
954 × 548
确认驱动安装正确后,使用DX9 SDK中的directshow进行视频软件开发,使用VC6可以直接编译使用,在开发过程中,便于调试,本文使用的是vs2010进行的开发,在修改过程中,需要配置4个部分
(1)库文件添加,主要使用BaseClasses中得工程通过vs2010(对应版本的环境)编译生成的lib文件
(2)包含目录添加,主要使用include、BaseClasses、Common三个文件目录
(3)屏蔽C4430错误,VC6中默认可以不设置参数类型,在vs2010中报错需要更改,可以在配置->C+±>高级中设置屏蔽4430错误
(4)修改原始库文件,在原始库文件中,有一部分和C++语法相冲突,通过以下链接进行修改
DirectShow 配置环境

4.寄存器配置

寄存器设置功能通过windriver功能进行实现,通过windriver配置器生成相应板卡的驱动文件,通过引入wdapi1026.lib和对应生成的库文件,获取hDev设备号后,将设置寄存器的函数封装到需要更改的位置,偏置通过对应的板卡手册进行配置,调试过程可以通过windriver寄存器查看器和调试的方式进行

5.参考资料

1.WDM Video Capture Driver
2.DirectShow 配置环境

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值