You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-04-13 14:42:51 -07:00
Added patch for MPEG2/H264 DXVA2 video decoding through vaapi.
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
From 9741c7941627cf4a0aba5e6dcd02bc1d991cea7f Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sat, 21 Feb 2015 23:37:26 +0100
|
||||
Subject: winecfg: Add checkbox to enable/disable vaapi GPU decoder.
|
||||
|
||||
---
|
||||
programs/winecfg/resource.h | 1 +
|
||||
programs/winecfg/staging.c | 20 ++++++++++++++++++++
|
||||
programs/winecfg/winecfg.rc | 1 +
|
||||
3 files changed, 22 insertions(+)
|
||||
|
||||
diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h
|
||||
index 02d90fd..4b21d16 100644
|
||||
--- a/programs/winecfg/resource.h
|
||||
+++ b/programs/winecfg/resource.h
|
||||
@@ -212,6 +212,7 @@
|
||||
|
||||
/* Staging tab */
|
||||
#define IDC_ENABLE_CSMT 9001
|
||||
+#define IDC_ENABLE_VAAPI 9002
|
||||
|
||||
/* About tab */
|
||||
#define IDC_ABT_OWNER 8432
|
||||
diff --git a/programs/winecfg/staging.c b/programs/winecfg/staging.c
|
||||
index 09c0d3f..bda2e6e 100644
|
||||
--- a/programs/winecfg/staging.c
|
||||
+++ b/programs/winecfg/staging.c
|
||||
@@ -49,10 +49,26 @@ static void csmt_set(BOOL status)
|
||||
set_reg_key(config_key, keypath("DllRedirects"), "wined3d", status ? "wined3d-csmt.dll" : NULL);
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * DXVA2
|
||||
+ */
|
||||
+static BOOL vaapi_get(void)
|
||||
+{
|
||||
+ BOOL ret;
|
||||
+ char *value = get_reg_key(config_key, keypath("DXVA2"), "backend", NULL);
|
||||
+ ret = (value && !strcmp(value, "va"));
|
||||
+ HeapFree(GetProcessHeap(), 0, value);
|
||||
+ return ret;
|
||||
+}
|
||||
+static void vaapi_set(BOOL status)
|
||||
+{
|
||||
+ set_reg_key(config_key, keypath("DXVA2"), "backend", status ? "va" : NULL);
|
||||
+}
|
||||
|
||||
static void load_staging_settings(HWND dialog)
|
||||
{
|
||||
CheckDlgButton(dialog, IDC_ENABLE_CSMT, csmt_get() ? BST_CHECKED : BST_UNCHECKED);
|
||||
+ CheckDlgButton(dialog, IDC_ENABLE_VAAPI, vaapi_get() ? BST_CHECKED : BST_UNCHECKED);
|
||||
}
|
||||
|
||||
INT_PTR CALLBACK StagingDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
@@ -82,6 +98,10 @@ INT_PTR CALLBACK StagingDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
|
||||
csmt_set(IsDlgButtonChecked(hDlg, IDC_ENABLE_CSMT) == BST_CHECKED);
|
||||
SendMessageW(GetParent(hDlg), PSM_CHANGED, 0, 0);
|
||||
return TRUE;
|
||||
+ case IDC_ENABLE_VAAPI:
|
||||
+ vaapi_set(IsDlgButtonChecked(hDlg, IDC_ENABLE_VAAPI) == BST_CHECKED);
|
||||
+ SendMessageW(GetParent(hDlg), PSM_CHANGED, 0, 0);
|
||||
+ return TRUE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
diff --git a/programs/winecfg/winecfg.rc b/programs/winecfg/winecfg.rc
|
||||
index a723880..694bd73 100644
|
||||
--- a/programs/winecfg/winecfg.rc
|
||||
+++ b/programs/winecfg/winecfg.rc
|
||||
@@ -314,6 +314,7 @@ BEGIN
|
||||
GROUPBOX "Staging settings",IDC_STATIC,8,4,244,210
|
||||
LTEXT "The following settings are experimental and may break stuff!\nMake sure to reset them again in case of a problem.",IDC_STATIC,16,16,230,16
|
||||
CONTROL "Enable &CSMT for better graphic performance",IDC_ENABLE_CSMT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,40,230,8
|
||||
+ CONTROL "Enable &VAAPI as backend for DXVA2 GPU decoding",IDC_ENABLE_VAAPI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,55,230,8
|
||||
END
|
||||
|
||||
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||
--
|
||||
2.1.0
|
||||
|
Reference in New Issue
Block a user