【发布时间】:2013-12-04 01:47:23
【问题描述】:
我正在尝试为符合 UVC 的 USB 相机编写一个 UVC 扩展单元驱动程序。
我从哪里开始?
我基于以下链接中提供的 MSDN 示例开始了开发。 http://msdn.microsoft.com/en-us/library/ff556621%28v=vs.85%29.aspx
替换了过程中指定的所有 GUID。我正在使用 Logitech Pro 9000 USB 摄像头。使用 UVCView 工具获得 UVC 扩展 guid 并分配给 PROPSETID_VIDCAP_EXTENSION_UNIT。
编写了一个示例应用程序来访问这个扩展单元。
IExtensionUnit * g_pIXCcontrol;
hr = CoCreateInstance(__uuidof(IExtensionUnit), NULL, CLSCTX_INPROC_SERVER,
IID_IExtensionUnit, (void **)&g_pIXCcontrol);
我面临什么问题?
CoCreateInstance 返回类未注册 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)。
我已经通过命令提示符使用 regsvr32 命令注册了 uvcplgn.ax,该命令又会抛出成功注册的消息。但是即使注册后,CoCreateInstance 也会抛出 class not registered 错误。
这可能是什么原因? MSDN 示例是否遗漏了正确注册扩展单元的内容?
提前致谢
【问题讨论】:
-
请问@Spark,在您创建的UVC 扩展单元中,您是否创建了另一个可以与之对话的模块/程序/脚本?我问是因为我有一个 RealSense 410 (DS5) 相机,我想操纵它的 LASER 扩展控制。或者,您知道代码 sn-ps(最好是 Python)演示如何与 UVC 扩展单元控件交互(最好使用 OpenCV 或 libv4l2)?
标签: windows com usb driver directshow