阅读:3704回复:29
在论坛中晕乎乎的找了一上午,关于摄像头驱动的问题仍无解,请各位大大帮忙
文字
最近一直在学习摄像头驱动,只是自己从网上及书上一点一点摸索,但是仍然有许多困惑,列出几个最晕的,希望各位dx能给小弟这个新手帮忙。 1、我现在使用的是98ddk,上面的范例usbcamd是不是通用与各种摄像头,要是开发自己的摄像头驱动,只需要讲usbintel修改为自己用的摄像头对应参数及控制代码,就可以了?? 2、使用softice要怎样才能调试usbcamd及usbintel代码,我现在已经编译通过,跟踪程序的话还需要如何操作??我想熟悉一下stream class及minidriver; 3、我现在看得资料主要是从网上搜索到的,遇到不懂得再查,是不是有什么驱动新手必须看的经典书籍,希望大家推荐几本,我现在有<<WIN2000驱动程序设计>><<Programming the Microsoft Windows Driver Model>><<windows wdm设备驱动程序开发指南>>三本书; 4、另外,各位大虾驱动程序是在一些开发包的模板基础上开发,还是完全自己弄通原理自己coding啊,希望过来人的给指条明路; 我是刚加入驱动程序开发网的新人,希望大家给与帮助,不生感谢。。。 |
|
沙发#
发布于:2007-04-24 19:50
你是不是什么地方改错了?那些sample好像都是没问题的。
|
|
板凳#
发布于:2007-04-24 11:33
Delphips老大,帮忙看看阿,等你好几天了
1〉usbintel在SRB_INTERSECTOR_DATA时总是提示formatsize too small?2〉usbintel进行预览时,发生error code 0x0000000的错误? 3〉testcap进行预览时,发生error code 0x80070057的错误?而且并不是每次都能显示彩条。 |
|
地板#
发布于:2007-04-18 08:33
我还在看文档在 还没正式的开始写驱动
你用RGB的话 先要看下USBINTEL支持不? 别到时候搞会了 发现USBITNTEL不支持 那才掉得大 呵呵~ 你现在是不是经常重新启动啊? 顺便问下 你USB是68013的吗? A51文件是不是也需要根据驱动进行更改啊? |
|
地下室#
发布于:2007-04-17 16:52
re: bennydice
我采集到的数据应该是rgb的,具体usbintel里的格式是什么样的,我没细看,但是我想如果格式不支持,可以在处理processrawframe的地方转换一下吗!我还没看到图像呢,上面的那三个问题我都问了好几天,自己也一直在想,还没解决。你有什么进展吗?交流一下 |
|
5楼#
发布于:2007-04-17 16:42
usbintel支持YUV422吗?
你要做的视频的格式是什么的啊? |
|
6楼#
发布于:2007-04-17 16:27
有点小进展,但是还有问题希望各位帮忙
1〉usbintel在SRB_INTERSECTOR_DATA时总是提示formatsize too small?2〉usbintel进行预览时,发生error code 0x0000000的错误? 3〉testcap进行预览时,发生error code 0x80070057的错误?而且并不是每次都能显示彩条。 这三个问题困惑了我好几天了,各位朋友走过路过,给点启示。 还有就是我个人觉得,如果没有特殊要求,可以使用usbintel来调试自己的驱动,而用testcap来做参考,判断usbintel的运作是否正确,个人看法,了解不多,请大家指正! ![]() |
|
7楼#
发布于:2007-04-13 15:03
用户被禁言,该主题自动屏蔽! |
|
8楼#
发布于:2007-04-12 14:08
各位老大,我怎么给delphi老大加分阿?
刚刚开始泡论坛,不懂,我应该怎么给帮助我的人加分a |
|
9楼#
发布于:2007-04-11 08:39
恩 我现在也正在看这个
我也是delphi大哥带进来的哦 呵呵~ 太感谢他了! |
|
10楼#
发布于:2007-04-10 17:35
SRB_GET_STREAM_INFO后得到什么,证明初始化成功了?
1、SRB_GET_STREAM_INFO处理时需要调用AdapterReceivePacket,返回设备句柄,我怎么知道这个设备句柄的对错阿?2、如何判定初始化成功了,可以open_stream进行数据传输了阿? 各位老大,走过路过,给小弟帮帮忙! |
|
11楼#
发布于:2007-04-10 14:14
我也是个菜鸟哦,我的还没看到图像呢,问题多多
我的qq:40391284,还是Delphips的帮助,我才上路,但是只是刚从起跑线出来 |
|
12楼#
发布于:2007-04-10 09:21
恩 一起研究吧 我现在也在做这 我做的是OV7640 出来的直接就是YUV格式的数据了
楼主留个联系方式 一起交流下吧 |
|
13楼#
发布于:2007-04-10 08:50
谢谢ke77的介绍,我很想看看这方面
|
|
|
14楼#
发布于:2007-04-09 14:23
re:bennydice
具体你可以看看sdk的msdn中Video Stream Formats的说明,大概就是在minidriver与directshow共用一个结构KSDATAFORMAT,我想只要摄像头终端如果可以采集到的图像格式,在minidriver中指定一下,directshow从结构中获取格式的值,按照对应格式解码就可以了。要是摄像头采集到的原始数据,可能需要转化为yuv,方便编码。我是第一次在论坛中给别人解答问题,说的不好,别介意,具体minidriver中如何初始化,我还在找。。 ![]() 还有,我也比较喜欢火影 |
|
15楼#
发布于:2007-04-09 11:55
一起研究ING ~~~
最近我也想做这方面的驱动, delphi 我想请问下, 这些驱动是怎样支持视频格式的呢? 比如说RGB和YUV格式,这些东西都是在驱动里面规定好的吗? 还是这些规定的代码要自己写?或者说是已经规定好了,我只用选择相应的参数就OK了呢? 谢谢~ |
|
16楼#
发布于:2007-04-09 11:40
我看论坛中有人说用testcap调试就能看到摄像头的图像??
我现在用usbintel调试,现在程序能跑起来了,但是好像初始化一些参数时错误。郁闷中看到论坛中有人说用testcap进行调试,各位老大,那位调试过,究竟用usbintel,还是用testcap阿??? |
|
17楼#
发布于:2007-04-04 16:29
Re : Delphips问完这个问题,三天内不问了,我要开始闭门造车了
老大,那照你的解释,我可不可以这样理解:1、我需要将安装前屏蔽掉的vendor,替换成我自定义的vendor,然后在usb camera终端,根据自定义的vendor响应数据,设备就能跑起来; 2、而为了传输数据能让终端接收并确认,就需要对接口及参数进行设置; 3、那么,如果我想看到图像,即便是个糟糕到一塌糊涂的图像,也许要我将整个程序清楚地理顺,中间不能取巧,或者说部分理解,稍加修改就能实现; 4、还有,我随便拿一个camera,因为vendor都是自定义的,我只能用来帮助理解camintel,不可能在别人的摄像头上采集到图像,除非拿到厂商的vendor定义; 5、如果4成立,我是不是应该将驱动端的minidriver与终端摄像头的程序一起调试,就像调试协议那样,你发一个,我收到,我发,你收到,哈哈,这种方法是我的杀手锏了。 |
|
18楼#
发布于:2007-04-04 13:09
听君一席话,胜读十年书
|
|
|
19楼#
发布于:2007-04-04 13:06
1. 你现在只是完成了一个驱动框架,其中每个例程在驱动中从初始化到运行起来都有自己的用途,你所要做到就是要让你的设备跑起来,都需要哪些vendor command来配置你的设备,这些vendor command需要放在哪些例程里面,然后怎样配置你的usb pipe来抓数据。还有最关键的是怎么判断一帧图像的首尾,在CAM_ProcessUSBPacketEx中,当抓满一帧, FrameComplete 标识置TRUE, 它就会自动把这一帧图像送出去。
2. 你指的是capture pin 和 still pin吗? 当然有前者就够了。 3. 你现在开发的usbintel是一个mini driver,它只是这个设备完整驱动的一部分,其他部分微软已经做了,或者可以说你现在是在调用微软的类库, 层次关系如下 stream.sys-> usbcamd.sys->usbintel.sys 4. directshow也是微软的一种封装,主要体现为一堆filter, 你用dxsdk tool 里面的graphedit就可以看到了,把需要filter连起来,就看到图像了,你不用关心数据是怎么从pin上读取的,微软已经帮你做了。 qq, msn都是这样的。 |
|
上一页
下一页