From d41eb01bd761657812bc6954ea0df79f08b9b2bf Mon Sep 17 00:00:00 2001 From: Hendrik Leppkes Date: Sun, 14 Apr 2013 15:34:11 +0200 Subject: wmv9dmo: fix disabling of the wmv9dmo integrated deinterlacer on XP --- decoder/LAVVideo/decoders/wmv9.cpp | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'decoder') diff --git a/decoder/LAVVideo/decoders/wmv9.cpp b/decoder/LAVVideo/decoders/wmv9.cpp index d7047a43..c76dbbcd 100644 --- a/decoder/LAVVideo/decoders/wmv9.cpp +++ b/decoder/LAVVideo/decoders/wmv9.cpp @@ -266,15 +266,17 @@ STDMETHODIMP CDecWMV9::Init() // Disable deinterlacing setting in the registry // Apparently required on XP - CRegistry reg; - reg.Open(HKEY_CURRENT_USER, L"Software\\Microsoft\\Scrunch"); - reg.ReadDWORD(L"Deinterlace.old", hr); - if (FAILED(hr)) { - DWORD dwValue = reg.ReadDWORD(L"Deinterlace", hr); - if (FAILED(hr)) - dwValue = 0; - reg.WriteDWORD(L"Deinterlace.old", dwValue); - reg.WriteDWORD(L"Deinterlace", 0); + CreateRegistryKey(HKEY_CURRENT_USER, L"Software\\Microsoft\\Scrunch"); + CRegistry reg = CRegistry(HKEY_CURRENT_USER, L"Software\\Microsoft\\Scrunch", hr); + if (SUCCEEDED(hr)) { + reg.ReadDWORD(L"Deinterlace.old", hr); + if (FAILED(hr)) { + DWORD dwValue = reg.ReadDWORD(L"Deinterlace", hr); + if (FAILED(hr)) + dwValue = 0; + reg.WriteDWORD(L"Deinterlace.old", dwValue); + reg.WriteDWORD(L"Deinterlace", 0); + } } hr = CoCreateInstance(CLSID_CWMVDecMediaObject, NULL, CLSCTX_INPROC_SERVER, IID_IMediaObject, (void **)&m_pDMO); -- cgit v1.2.3