Commit 61b78e43 authored by luken's avatar luken Committed by Commit bot

Don't use msmpeg2vdec.dll version 6.1.7140

This version of the dll seems to be causing a disproportionate number of
crashes, so we fall back to software decoding if that is the version of
the DLL on the user's machine.

BUG=403440

Review URL: https://codereview.chromium.org/502183002

Cr-Commit-Position: refs/heads/master@{#292040}
parent 2c67c096
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "base/callback.h" #include "base/callback.h"
#include "base/command_line.h" #include "base/command_line.h"
#include "base/debug/trace_event.h" #include "base/debug/trace_event.h"
#include "base/file_version_info.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "base/memory/shared_memory.h" #include "base/memory/shared_memory.h"
...@@ -638,6 +639,19 @@ bool DXVAVideoDecodeAccelerator::InitDecoder(media::VideoCodecProfile profile) { ...@@ -638,6 +639,19 @@ bool DXVAVideoDecodeAccelerator::InitDecoder(media::VideoCodecProfile profile) {
"msmpeg2vdec.dll required for decoding is not loaded", "msmpeg2vdec.dll required for decoding is not loaded",
false); false);
// Check version of DLL, version 6.7.7140 is blacklisted due to high crash
// rates in browsers loading that DLL. If that is the version installed we
// fall back to software decoding. See crbug/403440.
FileVersionInfo* version_info =
FileVersionInfo::CreateFileVersionInfoForModule(decoder_dll);
RETURN_ON_FAILURE(version_info,
"unable to get version of msmpeg2vdec.dll",
false);
base::string16 file_version = version_info->file_version();
RETURN_ON_FAILURE(file_version.find(L"6.1.7140") == base::string16::npos,
"blacklisted version of msmpeg2vdec.dll 6.7.7140",
false);
typedef HRESULT(WINAPI * GetClassObject)( typedef HRESULT(WINAPI * GetClassObject)(
const CLSID & clsid, const IID & iid, void * *object); const CLSID & clsid, const IID & iid, void * *object);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment