阅读:1915回复:8
驱动的封装vs驱动与directx的接口
我看到有的程序对驱动进行了封装,提供了一套api函数,而有的开发是在class driver上开发一个minidriver与directshow的接口兼容,那位大侠能否给我比较一下这两者的优劣?
我现在在作capture的项目,所以主要关心directshow,我有一个capture卡,他对directshow接口的支持特别好,所以在application的开发上我个人觉得比提供api要好,各位大侠怎么认为的呢? |
|
沙发#
发布于:2003-07-02 09:05
提供API是为了方便二次开发,一般是否支持directshow接口,主要由驱动决定的,很少有人把对directshow的支持放在API上。
|
|
|
板凳#
发布于:2003-07-02 19:40
谢谢你的指教,你说的“对directshow的支持放在API上”是什么意思?
进行二次开发是不是就是对API的调用,还是再次封装Api? 如果不进行二次开发,那么那种方式好呢?能否再给我讲讲? |
|
地板#
发布于:2003-07-03 09:07
二次开发只的是Capture卡的应用,一般要用使用卡,一种方法是用CreateFile 打开然后进行读写,另一种方法就是调用卡提供的API接口函数,这些函数其实就是对卡的驱动进行了一些封装,方便用户开发,还有就是如果驱动支持VFW、DirectShow接口的话,可以用它对应的API 或 COM 接口来调用。卡提供的API一般都是一个动态连接库。如果卡支持 DirectShow 接口,那么它对该接口的支持一般都是在驱动中实现的,很少在API 也就是动态连接库中实现。
|
|
|
地下室#
发布于: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中的接口函数? |
|
5楼#
发布于:2003-07-04 08:56
你的另一个设备不支持DirectShow接口。如果他提供了API我觉得用API远比用DirectShow开发容易。你如果要写驱动就写一个Stream minidriver ,在驱动中支持DirectShow接口。
|
|
|
6楼#
发布于:2003-07-05 16:27
谢谢大侠的再次指教,你说Api比ds编程容易,确实是这样的,但是功能方面我还是觉得ds比api好。现在我有一个问题就是ds中的IWindow接口(好像叫这个名字把)就是能控制显示位置,比如说指定窗口显示,我可以在MFC中将图象显示在一个控件上,可是api没有这个功能,你说我该怎么实现呢?
再有就是在驱动中得到的rgb数据怎么实现视频显示,一般调用的是什么函数? 谢谢大侠!分给的有些少,下个问题我会开新贴送分的。:) |
|
7楼#
发布于:2009-06-26 17:35
问题的答案呢,我正在受着类似的折磨
|
|
8楼#
发布于:2009-07-02 17:57
用户被禁言,该主题自动屏蔽! |
|