Proxy
Proxy

Reputation: 1854

Video Playback in DirectX 11

Pretty self explanatory. Microsoft had DirectShow for DirectX 9, but using DirectShow with DX11 is a COM nightmare beyond words. Is there a standard for video rendering I haven't heard of, or perhaps a free third-party library for this purpose?

Edit: Thanks to Mgetz, I am aware of Microsoft's attempt at a solution, Media Foundation. However, it's limited to Windows 8+, which I would much prefer to avoid.

Upvotes: 10

Views: 7650

Answers (3)

Bill Demos
Bill Demos

Reputation: 21

There is DirectX Video Acceleration 2.0 which has a fabulous API, the DXVA-HD (after one has seen VMR9's API, especially with that custom allocator/presenter for renderless drawing, every other API is fabulous :) )

Have a look at: https://msdn.microsoft.com/en-us/library/windows/desktop/ee663586(v=vs.85).aspx

Also, there is a sample in: https://msdn.microsoft.com/en-us/library/windows/desktop/dd756740(v=vs.85).aspx

Windows 7 is the minimum supported windows version

You will not believe how straight forward it is with this API to have it decode the video into your texture.

Upvotes: 2

user3790707
user3790707

Reputation: 31

Media Foundation says that it "enables the development of applications and components for using digital media on Windows Vista and later."

So, it looks like it should work for Vista, Windows 7, and Windows 8.

Upvotes: 2

Non-maskable Interrupt
Non-maskable Interrupt

Reputation: 3911

This may not exactly match your requirement, but for your GOAL, you may take a look on ffmpeg, libx264 and theora(for ogg sound) or faad(decode aac).

I have done using ffmpeg to open container(3gp/mp4 is simple to implment yourself btw if full GPL licence is a concern), libx264 to decode to frame and upload to opengl texture, performance is good (on mac pro it can render 50 fps for 1080p without optimization) and by getting your hand dirty you can have fun doing stupid things with the texture and 3d transforms.

Upvotes: 3

Related Questions