Codecs for Windows Store apps
As of April 22, 2014:
- ogg, vorbis, theora build as DLLs for Windows/RT/Phone 8.1
- Brion doing some research on Media Foundation codec plugins
- backup plan for C++/.NET apps if that fails: make a limited-functionality player as a Xaml component that can be reused
- additional backup plan for HTML apps: package codec as a Windows Runtime component and reuse the player frontend from ogv.js
Building libraries for Windows Runtime
Windows 8+/RT and Windows Phone 8.1 apps are sandboxed (similarly to iOS or Android) and use the sorta-COM-based Windows Runtime libraries rather than classic Win32.
Work in progress adapting the win32 Visual Studio projects for the libraries ogg, vorbis, and theora libraries:
- https://github.com/brion/OgvRT (wrapper test app that draws a file to screen with Direct3D)
- https://github.com/brion/ogg/commits/metro - branch with build files
- https://github.com/brion/vorbis/commits/metro - branch with build files
- https://github.com/brion/theora/commits/metro - branch with build files
- Will try Opus as well but don't have test files yet.
These build for both Windows 8.1 (x86, x64, and ARM) and Windows Phone 8.1 (x86 for simulator, ARM for device) using the "Universal Windows application" support in the latest Visual Studio 2013 Express.
Media Foundation extensions
Windows Runtime's standard media framework is the COM-based Media Foundation, introduced in Windows 7. This is different from DirectShow and uses a different model for codecs.
Unfortunately, Windows Store apps can't install globally available extensions because they are sandboxed.
Fortunately, Windows Store apps can install locally available extensions that work within their sandbox. There is a sample project with an MPEG1 decoder.
In theory, a codec plugin done the right way can work with HTML5-based or .NET-based apps as well as C++-based ones using Windows Runtime directly.