Conexant Bt878驱动及视频软件开发

2023-11-16

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 配置环境

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Conexant Bt878驱动及视频软件开发 的相关文章

随机推荐

  • 闭环系统的零极点图判定稳定性_三步教你设计运放电路稳定性

    1 前言 集成运算放大器的参数有很多 但涉及到实际应用环境的不同 一些参数非常重要 另外一些则相对次要 例如 在交流高频领域 会重视带宽和压摆率 而在直流精密场合 则重视输入失调电压 输入偏置电流 还有一些参数 不管直流还是交流 都会重点关
  • 清华大学开源的chatGLM-6B部署实战

    Windows部署 win10 通过wsl部署 常见问题 torch cuda OutOfMemoryError CUDA out of memory 在Windows的系统环境变量中增加 变量名 PYTORCH CUDA ALLOC CO
  • 通过alter table A engine=innodb来重建表

    1 业务场景 即为什么要重建表 由于前期的存储设计不合理 表里有个字段 用于存储大段字符串 导致存储到磁盘的空间极大 严重影响表相关的增删改查速度 所有需要对表存储设计进行重构 并对表进行重建 2 实践记录 我们业务场景是由软删字段的 de
  • C++,类的多态

    一 多态的基本概念 多态 父类的指针或引用 指向或初始化子类的对象 调用子类对父类重新的函数 进而展开子类的功能 函数重新的必要条件 必须有继承关系 子类和父类有同名同类型的函数 父类中的该函数必须是虚函数 虚函数 在函数前加上virtua
  • K8s Kubernetes集群部署

    root master yum y install docker ce root master systemctl enable now docker Created symlink etc systemd system multi use
  • QT取消标题栏,如何实现窗口移动

    qt自带的标题栏在多个平台都显示的不一样 而且在常用的window平台也非常的不好看 所以我们经常会用到的美化方式就是会取消标题栏的显示 但是取消标题栏的显示就会出现一个问题就是无法实现窗口的移动 所以这里给出一个方法实现左键按压窗口控件任
  • MATLAB算法实战应用案例精讲-【异常检测】OCSVM算法(附Python和MATLAB代码)

    目录 前言 几个高频面试题目 1 OneClass 与二分类 多分类的区别
  • 计算机体系结构基础知识介绍之缓存性能的十大进阶优化之非阻塞缓存(四)

    优化四 非阻塞缓存 提高缓存带宽 对于允许乱序执行的流水线计算机 处理器不需要因数据高速缓存未命中而停止 例如 处理器可以继续从指令高速缓存获取指令 同时等待数据高速缓存返回丢失的数据 非阻塞高速缓存或无锁高速缓存允许数据高速缓存在未命中期
  • 继承中方法的覆盖重写_概念与特点,

    重写 Override 概念 在继承关系当中 方法的名称一样 参数列表也一样 重写 Override 方法的名称一样 参数列表 也一样 覆盖 覆写 重载 Overload 方法的名称一样 参数列表 不一样 方法的覆盖重写特点 创建的是子类对
  • 必刷算法题之字符串(题目及代码)---C++

    文章目录 第1题 执行操作后的变量值 第2题 罗马数字转整数 第3题 句子中的最多单词数 第4题 左旋转字符串 第5题 宝石与石头 第6题 Excel 表中某个范围内的单元格 第7题 括号的最大嵌套深度 第8题 分割平衡字符串 第9题 最长
  • CACC 协同式自适应巡航模型 搭建四辆车在carsim和simulink进行协同式自适应巡航 其中间距策略考虑领航车速的影响,各个车辆采用分层式控制,分层式控制器主要分为下层控制

    CACC 协同式自适应巡航模型 仿真软件版本 Carsim2016 Matlab2018b及以上 搭建四辆车在carsim和simulink进行协同式自适应巡航 其中间距策略考虑领航车速的影响 各个车辆采用分层式控制 分层式控制器主要分为下
  • ubuntu 22.04 安装 Docker Desktop 及docker介绍

    目录 一 Docker Desktop 安装 1 我们先去官网下载安装包 2 Install Docker Desktop on Ubuntu 3 Launch Docker Desktop 二 Docker 介绍 什么是docker 如何
  • 启动mongodb数据库 mongo命令时回报计算机拒绝访问

    当你没有启动mongodb数据库的时候 bin目录下输入mongo命令时回报计算机拒绝访问 这个时候解决办法是进入bin目录输入mongodb exe dbpath c data db dbpaht 后面一定要加 双引号 否则会报错误
  • NODE.JS--如何使用Node.js

    简单的说 Node js 就是运行在服务端的 JavaScript Node js 是一个基于Chrome JavaScript 运行时建立的一个平台 Node js是一个事件驱动I O服务端JavaScript环境 基于Google的V8
  • vscode remote server tunnel内网穿透转发tcp,速率10kb每秒

    参考 vscode网页版的正确打开方式 建立tunnel p2p连接 vscode打开网页 怪力左手的博客 CSDN博客 vscode内网穿透 白嫖10M带宽穿透 remote tunnels远程开发插件 不嫖白不嫖 哔哩哔哩 bilibi
  • 深入浅出的讲解傅里叶变换

    作 者 韩 昊 知 乎 Heinrich 微 博 花生油工人 知乎专栏 与时间无关的故事 谨以此文献给大连海事大学的吴楠老师 柳晓鸣老师 王新年老师以及张晶泊老师 转载的同学请保留上面这句话 谢谢 如果还能保留文章来源就更感激不尽了 其实学
  • Ubuntu 安装 CUDA(附测试)

    为深度学习所用 博主预想在Ubuntu16 04上安装 显卡驱动 CUDA cuDNN Tensorflow gpu Keras PyCharm 参考了众多资料 最终成功将所有软件安装完毕 且能成功运行使用 该篇博客介绍了CUDA的安装教程
  • 2023-详解实时数仓建设

    一 实时数仓建设背景 1 实时需求日趋迫切 目前各大公司的产品需求和内部决策对于数据实时性的要求越来越迫切 需要实时数仓的能力来赋能 传统离线数仓的数据时效性是 T 1 调度频率以天为单位 无法支撑实时场景的数据需求 即使能将调度频率设置成
  • 接口优化从哪些方面入手?

    关注公众号 1024个为什么 及时接收最新推送文章 1 背景 新接手的一个服务 对整个服务熟悉后 发现调用量 TOP1 的一个接口 完全超乎我对这个接口使用场景的预期 预期几万的接口 实际调用量近 400万 和调用方交涉后 暂时无法推动调用
  • Conexant Bt878驱动及视频软件开发

    目录 1 前言 2 驱动开发 3 视频软件开发 3 1 DX SDK版本选择 3 2 directshow开发 4 寄存器配置 5 参考资料 1 前言 本文是对基于Conexant Bt878进行的驱动开发和软件开发进行的整理论述 驱动是基