wshsabc
驱动牛犊
驱动牛犊
  • 注册日期2003-05-09
  • 最后登录2008-01-14
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1915回复:8

驱动的封装vs驱动与directx的接口

楼主#
更多 发布于:2003-07-01 19:45
我看到有的程序对驱动进行了封装,提供了一套api函数,而有的开发是在class driver上开发一个minidriver与directshow的接口兼容,那位大侠能否给我比较一下这两者的优劣?

我现在在作capture的项目,所以主要关心directshow,我有一个capture卡,他对directshow接口的支持特别好,所以在application的开发上我个人觉得比提供api要好,各位大侠怎么认为的呢?
swf2003
驱动中牛
驱动中牛
  • 注册日期2003-02-13
  • 最后登录2011-10-28
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望22点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-02 09:05
提供API是为了方便二次开发,一般是否支持directshow接口,主要由驱动决定的,很少有人把对directshow的支持放在API上。
你的认可是对我最大的鼓励!
wshsabc
驱动牛犊
驱动牛犊
  • 注册日期2003-05-09
  • 最后登录2008-01-14
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-02 19:40
谢谢你的指教,你说的“对directshow的支持放在API上”是什么意思?
进行二次开发是不是就是对API的调用,还是再次封装Api?
如果不进行二次开发,那么那种方式好呢?能否再给我讲讲?
swf2003
驱动中牛
驱动中牛
  • 注册日期2003-02-13
  • 最后登录2011-10-28
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望22点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-03 09:07
二次开发只的是Capture卡的应用,一般要用使用卡,一种方法是用CreateFile 打开然后进行读写,另一种方法就是调用卡提供的API接口函数,这些函数其实就是对卡的驱动进行了一些封装,方便用户开发,还有就是如果驱动支持VFW、DirectShow接口的话,可以用它对应的API 或  COM 接口来调用。卡提供的API一般都是一个动态连接库。如果卡支持 DirectShow 接口,那么它对该接口的支持一般都是在驱动中实现的,很少在API 也就是动态连接库中实现。
你的认可是对我最大的鼓励!
wshsabc
驱动牛犊
驱动牛犊
  • 注册日期2003-05-09
  • 最后登录2008-01-14
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-07-03 20:09
大侠,还有关于ds的问题想向你请教:

我现在有两个采集设备,一个我在dshow的graph edit中可以看到他是一个capture filter,我可以枚举出这个设备,并且可以调用ds的接口函数对其作application的开发。

可是另一个设备他在ds的filter中看不到,这是什么原因?他用的是ms的标准驱动usbscan.SYS,在他之上做的api,现在我也想用ds的编程方法对这个设备进行控制,我是不是应该做个minidriver之类的驱动(作个minidriver就能保证在ds中调用了吗?还是要写个filter什么的),还是用api来仿制ds中的接口函数?
swf2003
驱动中牛
驱动中牛
  • 注册日期2003-02-13
  • 最后登录2011-10-28
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望22点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-07-04 08:56
你的另一个设备不支持DirectShow接口。如果他提供了API我觉得用API远比用DirectShow开发容易。你如果要写驱动就写一个Stream minidriver ,在驱动中支持DirectShow接口。
你的认可是对我最大的鼓励!
wshsabc
驱动牛犊
驱动牛犊
  • 注册日期2003-05-09
  • 最后登录2008-01-14
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-07-05 16:27
谢谢大侠的再次指教,你说Api比ds编程容易,确实是这样的,但是功能方面我还是觉得ds比api好。现在我有一个问题就是ds中的IWindow接口(好像叫这个名字把)就是能控制显示位置,比如说指定窗口显示,我可以在MFC中将图象显示在一个控件上,可是api没有这个功能,你说我该怎么实现呢?

再有就是在驱动中得到的rgb数据怎么实现视频显示,一般调用的是什么函数?


谢谢大侠!分给的有些少,下个问题我会开新贴送分的。:)
wangbinds
驱动牛犊
驱动牛犊
  • 注册日期2009-05-15
  • 最后登录2010-04-15
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望21点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2009-06-26 17:35
问题的答案呢,我正在受着类似的折磨
gutian98
禁止发言
禁止发言
  • 注册日期2003-01-12
  • 最后登录2016-12-11
  • 粉丝4
  • 关注2
  • 积分760分
  • 威望8026点
  • 贡献值1点
  • 好评度364点
  • 原创分0分
  • 专家分21分
  • 金点子奖
  • 社区居民
8楼#
发布于:2009-07-02 17:57
用户被禁言,该主题自动屏蔽!
游客

返回顶部