小编Spa*_*ark的帖子

QueryInterface在C#上使用E_NOINTERFACE失败

Hi Stack Overflow成员,

我是C#编程的新手.我正在开发基本的相机流媒体并仍然捕捉应用程序.一旦用户静止不动,我将使用VMR9的位图混合概念在叠加层上显示它.

我做了什么?

  • 我从这里开始使用C#direct show library
  • 首先,我获得所有必需的过滤器接口 找到附加的捕获设备.称为具有源过滤器的渲染流和用于PREVIEW引脚的vmr9.STILL PIN的源过滤器,样本抓取器和空渲染器.
  • 我有三个菜单按钮 - >静止,显示叠加和隐藏叠加.
  • 我正在使用该库中提供的位图混合器示例.
  • 每次用户按下Take Still菜单时,图像将保存在桌面上,并将重新调整为小分辨率并显示在视频叠加上.
  • 显示覆盖并隐藏覆盖调用ShowHideBitmap()执行从vmr9过滤器查询VMR9BitmapMixer接口的操作,填充VMR9AlphaBitmap结构,然后调用IVMRMixerBitmap9.SetAlphaBitmap函数.

我面临什么问题?

  • 静止后,如果我通过菜单选项调用ShowHideBitmap(),则所拍摄的静止图像将在叠加时完美更新.
  • 这是保存静止图像时立即执行叠加自动更新的另一个选项.我创建基于事件的线程,并使其等待使用EventWaitHandle创建的更新事件.在从samplegrabber BufferCB函数返回之前,我设置了此更新事件.这反过来等待线程.在内部线程我调用ShowHideBitmap函数.在这种情况下,我收到如下错误消息.

Unable to case COM object of type 'DirectShowLib.VideoMixingRenderer9' to interface type 'DirectShowLib.IVMRMixerBitmap9'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{ced175e5-1935-4820-81bd-ff6ad00c9108}' failed due to the following error: No such interface supported (Exception from HRESULT: 0X80040002 (E_NOINTERFACE)

这是ShowHideBitmap函数的代码块

//Declarations
private static IBaseFilter vmr9 = null;
private static IVMRMixerBitmap9 vmr9mixerBitmap …
Run Code Online (Sandbox Code Playgroud)

c# camera directshow visual-studio-2008

8
推荐指数
1
解决办法
2489
查看次数

NEON指令在Windows CE 7上引发异常

由于全世界专家的迅速回复,我很乐意提出堆栈溢出问题:-)我想清楚地解释我面临的问题.

我想做什么?

  1. 我希望通过在线提供的各种示例来评估NEON指令集,以便自己编写一些算法.
  2. 出于评估目的,我正在使用ARM官方网站上提供的memcpy样本.这是链接http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka13544.html.

我的环境

  1. 我正在使用Platform Builder for Windows CE 7.0在Visual Studio 2008上编译NEON指令集.最新的平台构建器支持NEON指令编译.
  2. 我在OMAP3530 Mistral EVM板上运行我的代码.
  3. 我创建了一个简单的静态库(NEONLIB.lib),它包含执行所需操作的NEON指令.我创建了简单的Stream驱动程序(stream_interface.dll),它使用这个静态库在1280X720X2字节缓冲区上执行memcpy操作.我正在使用一个简单的应用程序(Neon_Test.exe)动态加载和卸载此驱动程序.

我面临的问题

  1. 操作系统启动后,我手动启动此应用程序,并遵循我收到的异常.

异常'数据中止'(0x4):Thread-Id = 047d002a(pth = c049c990),Proc-Id = 00400002(pprc = 8a3425e0)'NK.EXE',VM-active = 05420012(pprc = c04a1344)'Neon_Test.exe 'PID:00400002 TID:047D002A PC = ef135120(stream_interface.dll + 0x00005120)RA = ef133c18(stream_interface.dll + 0x00003c18)SP = d0f3fc84,BVA = 00000000

NeonMemcpy是我的驱动程序中的函数,它调用NEON函数.

Stream_Interface.map文件

....
0001:000029f0       ?NeonInit@@YAHXZ           100039f0 f   Neon_Process.obj
0001:00002bb4       ?NeonMemcpy@@YAXXZ         10003bb4 f   Neon_Process.obj
0001:00002c58       NKDbgPrintfW               10003c58 f   coredll:COREDLL.dll
0001:00002c68       SetLastError               10003c68 f   coredll:COREDLL.dll
....
Run Code Online (Sandbox Code Playgroud)

Neon_Process.cod文件

.......
; 108  :    MemcpyCustom((void*)g_pOUTVirtualAddr, (void*)g_pINPVirtualAddr, …
Run Code Online (Sandbox Code Playgroud)

assembly arm windows-ce visual-studio neon

4
推荐指数
1
解决办法
679
查看次数