阅读:1900回复:9
使用DirectShow或者自己开发SDK?
请教大家,如果有一张视频卡的,我是按照WDM内核流的模式开发驱动程序,这样就可以使用DirectShow开发应用程序呢?还是按照一般的方法开发驱动程序,然后开发自己的SDK呢?哪一种方法更好呢?
|
|
沙发#
发布于:2004-09-13 20:42
通常是按照WDM内核流的模式开发驱动程序
|
|
|
板凳#
发布于:2004-09-15 22:02
"按照一般的方法开发驱动程序,然后开发自己的SDK"
this is faster and all under your control. |
|
地板#
发布于:2004-11-09 14:41
用microsoft directshow 的model,不必自己再作新的.
|
|
|
地下室#
发布于:2005-01-28 20:05
专业的都不用DS。
消费的用DS。 |
|
5楼#
发布于:2005-01-29 12:17
如果你相信你的卡只用于自己的特定用途,就可以不采用Directshow。Directshow虽然对编写通用应用程序比较方便,但是代价是很大的。有的AVI文件用Media player播放的时候把CPU占满还不够,而用MPLAYER之类全集成的播放器只用掉不到50%的CPU,虽然它们的解码核心是同样的libavcodec。
|
|
6楼#
发布于:2005-02-01 04:24
re:有的AVI文件用Media player播放的时候把CPU占满还不够
这与Directshow无关的吧,应该检查你的系统及解压缩编码器。 我用Directshow编写的程序显示12路的384*288二十多帧/秒的视频,当时机子也只是赛扬三1.2G,同时再回放一路录像,CPU也好像没占满。 Directshow编程控制比较麻烦,很多时候要动态控制的东西都得自己 写Filter。还有个问题,到现在我还是没法克服上到十六个芯片的出现的问题,主要表现在每个芯片用25/秒的速率来采集图像的时候显示的图像有些会出现撕列的现象!这个应该与PCI的传送速率有关吧 |
|
7楼#
发布于:2005-02-01 09:14
re:有的AVI文件用Media player播放的时候把CPU占满还不够 你说的是不同的编码方式,我说的是同一种编码方式,同一个解码器核心,仅仅因为多了一层Directshow的包装,就有很大差别。
你是否把每一路都直接送显卡了?试试把它们先在内存里拼接成一幅图像,再一起送去显示。 |
|
8楼#
发布于:2005-02-01 16:27
压缩和解压都是用同一个编解码器。做过试验用不用directshow,cpu占用率相差不大。
显示方面我是用DirectDraw,直接把每一个视频数据在主表面不同位置显示出来的,也是拼成一屏。 |
|
9楼#
发布于:2005-02-02 10:38
可能你的应用程序filter级数少,看不出Directshow的影响,但是如果开发一块卡,就不能假定这块卡只用在处理过程简单的地方。
显示的问题,你要么只在回扫期间更新屏幕,要么用双缓冲或者三缓冲,否则肯定会导致图像撕裂,这还用解释吗? |
|