secondstory / ofxWMFVideoPlayer

Video player for openFrameworks using Windows Media Foundation API and hardware acceleration capabilities
Other
49 stars 44 forks source link

Intel Graphics HD 2000 not supported because of the lack of WGL_NV_DX_interop? #8

Open CyrusSUEN opened 10 years ago

CyrusSUEN commented 10 years ago

untitled 22 I have a machine using 2nd Generation Intel Core i3 and its integrated GPU with the latest graphics driver installed. But the OF video player using ofxWMFVideoPlayer library doesn't work.

After Googling the problem I found that 3rd Gen Intel HD Graphics actually supports OpenGL 4.0 and the new extension WGL_NV_DX_interop. http://www.geeks3d.com/20130914/intel-hd-graphics-driver-v9-18-10-3257-available-for-windows/

But it's unfortunate that eventually my program need to be deployed on an even older Intel platform running QM57 and its integrated GPU in an embedded system. And I don't think it supports that OpenGL extension even if I instal its latest graphics driver.

All I need is to get the HW video acceleration working and I don't need to manipulate any pixel of the footage. Do you think this is possible to add support to GPU that doesn't support WGL_NV_DX_interop?

BTW, the video player works perfectly even if it's on an non-nVidia card such as AMD Radeon HD 7970. clipboard01 clipboard02

philippelaulheret commented 10 years ago

Well, have you tried to download the latest driver (there : https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=23764&lang=eng&ProdId=3319 ) ?

The extension is required for having HW acceleration of the video playback within oF. The best fallback solution if it can be accommodated by your software is to draw the video in a separate frameless (Direct3D) window that you draw on top of your application, using windows api to position the window at the right spot, hide it when not needed anymore, etc. If you can do that, you can drop all the code related to the interop extension, and leave windows do its magic. You can get the handle to to the player window at the bottom of ofxWMFVideoPlayer.cpp (where you'd have to show the window or something), and you'd have to comment out the code related to wgl_nv_dx_interop (mostly in the presenter folder)