Chromium Code Reviews| Index: content/common/gpu/media/dxva_video_decode_accelerator.cc |
| =================================================================== |
| --- content/common/gpu/media/dxva_video_decode_accelerator.cc (revision 219627) |
| +++ content/common/gpu/media/dxva_video_decode_accelerator.cc (working copy) |
| @@ -23,6 +23,7 @@ |
| #include "base/memory/scoped_ptr.h" |
| #include "base/memory/shared_memory.h" |
| #include "base/message_loop/message_loop.h" |
| +#include "base/win/windows_version.h" |
| #include "media/video/video_decode_accelerator.h" |
| #include "ui/gl/gl_bindings.h" |
| #include "ui/gl/gl_surface_egl.h" |
| @@ -395,6 +396,22 @@ |
| RETURN_ON_FAILURE(CreateD3DDevManager(), |
| "Failed to initialize D3D device and manager",); |
| + |
| + if (base::win::GetVersion() == base::win::VERSION_WIN8) { |
| + // On Windows 8+ mf.dll forwards to mfcore.dll. It does not exist in |
| + // Windows 7. Loading mfcore.dll fails on Windows 8.1 in the |
| + // sandbox |
|
scherkus (not reviewing)
2013/08/29 23:56:00
end sentences with periods.
ananta
2013/08/30 02:21:15
Done.
|
| + if (!LoadLibrary(L"mfcore.dll")) { |
| + DLOG(ERROR) << "Failed to load mfcore.dll, Error: " << ::GetLastError(); |
| + return; |
| + } |
| + // MFStartup needs to be called once outside the sandbox. It fails on |
| + // Windows 8.1 with E_NOTIMPL if it is called the first time in the |
| + // sandbox. |
| + RETURN_ON_HR_FAILURE(MFStartup(MF_VERSION, MFSTARTUP_FULL), |
| + "MFStartup failed.",); |
| + } |
| + |
| pre_sandbox_init_done_ = true; |
| } |