(含代码)WinCE6.0 Camera驱动的挂载,使应用层能使用DirctShow访问
来源:互联网 发布:sem高级优化师 编辑:程序博客网 时间:2024/05/02 15:53
BSP SubProject 代码:
http://www.rayfile.com/zh-cn/files/3e467cab-8de6-11e1-a3c9-0015c55db73d/
我的代码参考了:(将Windows Embedded CE 6.0 USB Camera Driver.msi文件解压后得到的\cpp .h文件组成工程)
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=19512
参考文章了:
http://jazka.blog.51cto.com/809003/707027
学习Camera驱动的过程中,发现网上的资料较少,而且偏向于5.0版本的。在自己研究了一段时间后发现出现这种情况也比较正常。因为5.0以前的版本都是流接口驱动结构的,而6.0的Camera驱动则向DirectShow架构靠拢了很多,所以无法从应用程序的调用到底层的操作都看的很清楚,除非对DirectShow架构非常熟悉。
camera设备的初始化序列是如下:
1、所有的Camera必须被注册到同样的GUID。
以下注册表显示一个camera驱动的流接口设备注册表入口
- [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\CameraDriver]
- "Prefix"="<Driver prefix>"
- "Dll"="<Driver DLL name>"
- "Order"=dword:10
- "Index"=dword:1
- "IClass"=multi_sz: "{CB998A05-122C-4166-846A-933E4D7E3C86}"
2、WCE设备管理器加载Camera设备并调用驱动的入口点,CAM_Init..
一旦接收到调用,camera设备驱动检测并初始化硬件,允许并初始化它的数据结构体并返回设备实例标识符。
此设备标识符将在CAM_Open 中被用.
3、DirectShow用适当的设备名调用CreateFile.
应用程序应该用FindFirstDevice来接收基于适当设备类GUID的真实的名字。
4、DirectShow用CSPROPERTY_PIN_CTYPES查询Camera驱动,以获得它支持的pin数量.
也可以用CSPROENTRY_PIN_CATEGORY查询类型 (预览、捕获、静止图片)
5、DirectShow用CSPROPERTY_PIN_DEVICENAME查询Camera驱动, 以获得pin设备的名字。
这个名字通常是PIN1:。但是驱动也有可能用其它名字。
6、DirectShow为每个Pin类型在PIN驱动上调用CreateFile
7、驱动通过设置它的特性和数据格式初始化流,并为它分配buffers
8、客户端用IOCTL_STREAM_INSTANTIATE(传递进来pin标识符和消息队列的句柄,此句柄用于在驱动和Direct中间层传递异步包)为给出的pin句柄设置流类型
比如,如果CSPROPERTY_PIN_CTYPES返回3,且如果CSPROPERTY_PIN_CATEGORY(假如Id = 0)返回PINNAME_VIDEO_PREVIEW,
之后它调用IOCTL_STREAM_INSTANTIATE(用Id = 0)把给定的句柄绑定到流中.
9、通过Pin开始流数据
- (含代码)WinCE6.0 Camera驱动的挂载,使应用层能使用DirctShow访问
- (含代码)WinCE6.0 Camera驱动的挂载,使应用层能使用DirctShow访问
- (含代码)WinCE6.0 Camera驱动的挂载,使应用层能使用DirctShow访问
- (含代码)WinCE6.0 Camera驱动的挂载
- 基于WINCE6.0+S3C2443的camera驱动
- 基于WINCE6.0+S3C2443的camera驱动
- 基于WINCE6.0+S3C2443的camera驱动
- 基于WINCE6.0+S3C2443的camera驱动
- 基于WINCE6.0+S3C2443的camera驱动
- WinCE6.0 Camera驱动整体结构
- WinCE6.0 Camera驱动整体结构
- wince6.0 下如何编写能使直接访问硬件的软件
- Wince6.0 下Camera(OV3640) 驱动开发全程记录
- WinCE6.0 Camera驱动源码分析(二)
- Wince6.0 下Camera(OV3640) 驱动开发笔记
- WinCE6.0 Camera驱动源码分析(一)
- WinCE6.0 Camera驱动源码分析(二)
- Wince6.0 下Camera(OV3640) 驱动开发全程记录
- CSS 选择器记录
- LAMP配置教程(一)
- 测试用例评审
- Socket UDP通信小结(指定客户端的接受端口)
- 错误: 程序中有游离的‘\xxx’
- (含代码)WinCE6.0 Camera驱动的挂载,使应用层能使用DirctShow访问
- 使用adb访问sqlite数据库及常用命令
- java 递归与非递归求n的阶乘
- JAVA实现网址缩短
- Android开发--wifi工具类资料
- C#工程找不到Microsoft.Xna.Framework名字空间的问题
- ethernet
- 关于汉字的使用统计分析
- iOS XML解析器