Added mfplat-MFGetSystemTime patchset

This commit is contained in:
Alistair Leslie-Hughes 2018-12-17 11:36:45 +11:00
parent c119ae9eeb
commit 5020088406
3 changed files with 89 additions and 0 deletions

View File

@ -0,0 +1,69 @@
From 544deb6c0d9ae04d3b82d241f7ffe6a21fa3835f Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Mon, 17 Dec 2018 11:21:48 +1100
Subject: [PATCH] mfplat: Implement MFGetSystemTime
Wine-bug: https://bugs.winehq.org/show_bug.cgi?id=46300
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
dlls/mfplat/main.c | 17 +++++++++++++++++
dlls/mfplat/mfplat.spec | 2 +-
include/mfidl.idl | 1 +
3 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/dlls/mfplat/main.c b/dlls/mfplat/main.c
index c7c3465..1e8e2ea 100644
--- a/dlls/mfplat/main.c
+++ b/dlls/mfplat/main.c
@@ -248,6 +248,23 @@ HRESULT WINAPI MFTUnregisterLocal(IClassFactory *factory)
return S_OK;
}
+MFTIME WINAPI MFGetSystemTime()
+{
+ SYSTEMTIME st;
+ FILETIME ft;
+ MFTIME mf;
+
+ TRACE("()\n");
+
+ GetSystemTime(&st);
+
+ SystemTimeToFileTime(&st, &ft);
+
+ memcpy(&mf, &ft, sizeof(FILETIME));
+
+ return mf;
+}
+
static BOOL match_type(const WCHAR *clsid_str, const WCHAR *type_str, MFT_REGISTER_TYPE_INFO *type)
{
HKEY htransform, hfilter;
diff --git a/dlls/mfplat/mfplat.spec b/dlls/mfplat/mfplat.spec
index c828aea..349b926 100644
--- a/dlls/mfplat/mfplat.spec
+++ b/dlls/mfplat/mfplat.spec
@@ -98,7 +98,7 @@
@ stub MFGetPrivateWorkqueues
@ stub MFGetSockaddrFromNumericName
@ stub MFGetStrideForBitmapInfoHeader
-@ stub MFGetSystemTime
+@ stdcall MFGetSystemTime()
@ stub MFGetTimerPeriodicity
@ stub MFGetUncompressedVideoFormat
@ stub MFGetWorkQueueMMCSSClass
diff --git a/include/mfidl.idl b/include/mfidl.idl
index 2373e41..2fdb288 100644
--- a/include/mfidl.idl
+++ b/include/mfidl.idl
@@ -313,6 +313,7 @@ cpp_quote(" IMFMediaType **types, IMFStreamDescriptor **descriptor);")
cpp_quote("HRESULT WINAPI MFCreateTopology(IMFTopology **topology);")
cpp_quote("HRESULT WINAPI MFGetSupportedMimeTypes(PROPVARIANT *array);")
cpp_quote("HRESULT WINAPI MFGetService(IUnknown *object, REFGUID service, REFIID iid, void **obj);")
+cpp_quote("MFTIME WINAPI MFGetSystemTime(void);")
[
object,
--
1.9.1

View File

@ -0,0 +1 @@
Fixes: [46300] mfplat: Implement MFGetSystemTime

View File

@ -172,6 +172,7 @@ patch_enable_all ()
enable_krnl386_exe16_Invalid_Console_Handles="$1"
enable_libs_Debug_Channel="$1"
enable_libs_Unicode_Collation="$1"
enable_mfplat_MFGetSystemTime="$1"
enable_mmsystem_dll16_MIDIHDR_Refcount="$1"
enable_mountmgr_DosDevices="$1"
enable_mscoree_CorValidateImage="$1"
@ -672,6 +673,9 @@ patch_enable ()
libs-Unicode_Collation)
enable_libs_Unicode_Collation="$2"
;;
mfplat-MFGetSystemTime)
enable_mfplat_MFGetSystemTime="$2"
;;
mmsystem.dll16-MIDIHDR_Refcount)
enable_mmsystem_dll16_MIDIHDR_Refcount="$2"
;;
@ -4045,6 +4049,21 @@ if test "$enable_libs_Unicode_Collation" -eq 1; then
) >> "$patchlist"
fi
# Patchset mfplat-MFGetSystemTime
# |
# | This patchset fixes the following Wine bugs:
# | * [#46300] mfplat: Implement MFGetSystemTime
# |
# | Modified files:
# | * dlls/mfplat/main.c, dlls/mfplat/mfplat.spec, include/mfidl.idl
# |
if test "$enable_mfplat_MFGetSystemTime" -eq 1; then
patch_apply mfplat-MFGetSystemTime/0001-mfplat-Implement-MFGetSystemTime.patch
(
printf '%s\n' '+ { "Alistair Leslie-Hughes", "mfplat: Implement MFGetSystemTime.", 1 },';
) >> "$patchlist"
fi
# Patchset mmsystem.dll16-MIDIHDR_Refcount
# |
# | This patchset fixes the following Wine bugs: