From 2393fd2c7ecf66e2b08b4452f39ac6a2a747c1f8 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Tue, 28 Jul 2015 18:31:47 +0200 Subject: [PATCH] Added patch to implement AMStream GetMultiMediaStream functions. --- README.md | 3 +- debian/changelog | 1 + ...nt-IAMMediaStream-GetMultiMediaStrea.patch | 88 +++++++++++++++++++ .../amstream-GetMultiMediaStream/definition | 1 + patches/patchinstall.sh | 53 +++++++---- 5 files changed, 128 insertions(+), 18 deletions(-) create mode 100644 patches/amstream-GetMultiMediaStream/0001-amstream-Implement-IAMMediaStream-GetMultiMediaStrea.patch create mode 100644 patches/amstream-GetMultiMediaStream/definition diff --git a/README.md b/README.md index c43a3140..066ab60f 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ Wine. All those differences are also documented on the Included bug fixes and improvements ----------------------------------- -**Bug fixes and features included in the next upcoming release [12]:** +**Bug fixes and features included in the next upcoming release [13]:** * Add stubs for d3dx10_43.D3DX10CreateEffectFromFileA/W ([Wine Bug #27739](https://bugs.winehq.org/show_bug.cgi?id=27739)) * Add support for ThreadQuerySetWin32StartAddress info class ([Wine Bug #8277](https://bugs.winehq.org/show_bug.cgi?id=8277)) @@ -49,6 +49,7 @@ Included bug fixes and improvements * Fix loading of libraries with incomplete IMAGE_LOAD_CONFIG_DIRECTORY struct * Fix security cookie handling for UPX compressed executables ([Wine Bug #38949](https://bugs.winehq.org/show_bug.cgi?id=38949)) * Forward exitcode from child process when in wineconsole +* Implement AMStream GetMultiMediaStream functions ([Wine Bug #37090](https://bugs.winehq.org/show_bug.cgi?id=37090)) * Return dummy ID3DXSkinInfo interface when skinning info not present ([Wine Bug #33904](https://bugs.winehq.org/show_bug.cgi?id=33904)) * Share source of d3dx9_36 with d3dx9_33 to avoid Wine DLL forwards ([Wine Bug #21817](https://bugs.winehq.org/show_bug.cgi?id=21817)) * Silence repeated LocaleNameToLCID/LCIDToLocaleName unsupported flags FIXMEs ([Wine Bug #30076](https://bugs.winehq.org/show_bug.cgi?id=30076)) diff --git a/debian/changelog b/debian/changelog index e49a5b26..d3932ebe 100644 --- a/debian/changelog +++ b/debian/changelog @@ -18,6 +18,7 @@ wine-staging (1.7.48) UNRELEASED; urgency=low * Added patch to return dummy ID3DXSkinInfo interface when skinning info not present. * Added patch to store registry timestamps with nanoseconds precision. + * Added patch to implement AMStream GetMultiMediaStream functions. * Removed patch to allow to enable/disable InsertMode in wineconsole settings (accepted upstream). * Removed patch to improve IoGetDeviceObjectPointer stub to appease SecuROM diff --git a/patches/amstream-GetMultiMediaStream/0001-amstream-Implement-IAMMediaStream-GetMultiMediaStrea.patch b/patches/amstream-GetMultiMediaStream/0001-amstream-Implement-IAMMediaStream-GetMultiMediaStrea.patch new file mode 100644 index 00000000..648e787d --- /dev/null +++ b/patches/amstream-GetMultiMediaStream/0001-amstream-Implement-IAMMediaStream-GetMultiMediaStrea.patch @@ -0,0 +1,88 @@ +From 4d0e6bbc00bd49b8dcfce494bd7380c49f58f92b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michael=20M=C3=BCller?= +Date: Tue, 28 Jul 2015 18:21:20 +0200 +Subject: amstream: Implement IAMMediaStream::GetMultiMediaStream. + +--- + dlls/amstream/mediastream.c | 40 ++++++++++++++++++++++++++++++++-------- + 1 file changed, 32 insertions(+), 8 deletions(-) + +diff --git a/dlls/amstream/mediastream.c b/dlls/amstream/mediastream.c +index 947be1e..e4e15d7 100644 +--- a/dlls/amstream/mediastream.c ++++ b/dlls/amstream/mediastream.c +@@ -110,9 +110,15 @@ static HRESULT WINAPI DirectDrawMediaStreamImpl_IAMMediaStream_GetMultiMediaStre + { + DirectDrawMediaStreamImpl *This = impl_from_DirectDrawMediaStream_IAMMediaStream(iface); + +- FIXME("(%p/%p)->(%p) stub!\n", This, iface, multi_media_stream); ++ TRACE("(%p/%p)->(%p) stub!\n", This, iface, multi_media_stream); + +- return S_FALSE; ++ if (!multi_media_stream) ++ return E_POINTER; ++ ++ IMultiMediaStream_AddRef(This->parent); ++ *multi_media_stream = This->parent; ++ ++ return S_OK; + } + + static HRESULT WINAPI DirectDrawMediaStreamImpl_IAMMediaStream_GetInformation(IAMMediaStream *iface, +@@ -271,9 +277,15 @@ static HRESULT WINAPI DirectDrawMediaStreamImpl_IDirectDrawMediaStream_GetMultiM + { + DirectDrawMediaStreamImpl *This = impl_from_IDirectDrawMediaStream(iface); + +- FIXME("(%p/%p)->(%p) stub!\n", This, iface, ppMultiMediaStream); ++ TRACE("(%p/%p)->(%p) stub!\n", This, iface, ppMultiMediaStream); + +- return S_FALSE; ++ if (!ppMultiMediaStream) ++ return E_POINTER; ++ ++ IMultiMediaStream_AddRef(This->parent); ++ *ppMultiMediaStream = This->parent; ++ ++ return S_OK; + } + + static HRESULT WINAPI DirectDrawMediaStreamImpl_IDirectDrawMediaStream_GetInformation(IDirectDrawMediaStream *iface, +@@ -511,9 +523,15 @@ static HRESULT WINAPI AudioMediaStreamImpl_IAMMediaStream_GetMultiMediaStream(IA + { + AudioMediaStreamImpl *This = impl_from_AudioMediaStream_IAMMediaStream(iface); + +- FIXME("(%p/%p)->(%p) stub!\n", This, iface, multi_media_stream); ++ TRACE("(%p/%p)->(%p)\n", This, iface, multi_media_stream); + +- return S_FALSE; ++ if (!multi_media_stream) ++ return E_POINTER; ++ ++ IMultiMediaStream_AddRef(This->parent); ++ *multi_media_stream = This->parent; ++ ++ return S_OK; + } + + static HRESULT WINAPI AudioMediaStreamImpl_IAMMediaStream_GetInformation(IAMMediaStream *iface, +@@ -672,9 +690,15 @@ static HRESULT WINAPI AudioMediaStreamImpl_IAudioMediaStream_GetMultiMediaStream + { + AudioMediaStreamImpl *This = impl_from_IAudioMediaStream(iface); + +- FIXME("(%p/%p)->(%p) stub!\n", iface, This, multimedia_stream); ++ TRACE("(%p/%p)->(%p)\n", iface, This, multimedia_stream); + +- return S_FALSE; ++ if (!multimedia_stream) ++ return E_POINTER; ++ ++ IMultiMediaStream_AddRef(This->parent); ++ *multimedia_stream = This->parent; ++ ++ return S_OK; + } + + static HRESULT WINAPI AudioMediaStreamImpl_IAudioMediaStream_GetInformation(IAudioMediaStream *iface, +-- +2.4.5 + diff --git a/patches/amstream-GetMultiMediaStream/definition b/patches/amstream-GetMultiMediaStream/definition new file mode 100644 index 00000000..b2bb3b3a --- /dev/null +++ b/patches/amstream-GetMultiMediaStream/definition @@ -0,0 +1 @@ +Fixes: [37090] Implement AMStream GetMultiMediaStream functions diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index f7bdb888..affc27d3 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -80,6 +80,7 @@ patch_enable_all () enable_Pipelight="$1" enable_Staging="$1" enable_advapi32_LsaLookupSids="$1" + enable_amstream_GetMultiMediaStream="$1" enable_browseui_Progress_Dialog="$1" enable_combase_String="$1" enable_comctl32_LoadIconMetric="$1" @@ -313,6 +314,9 @@ patch_enable () advapi32-LsaLookupSids) enable_advapi32_LsaLookupSids="$2" ;; + amstream-GetMultiMediaStream) + enable_amstream_GetMultiMediaStream="$2" + ;; browseui-Progress_Dialog) enable_browseui_Progress_Dialog="$2" ;; @@ -1996,23 +2000,6 @@ if test "$enable_Staging" -eq 1; then ) >> "$patchlist" fi -# Patchset server-Misc_ACL -# | -# | This patchset fixes the following Wine bugs: -# | * [#15980] GetSecurityInfo returns NULL DACL for process object -# | -# | Modified files: -# | * dlls/advapi32/tests/security.c, server/process.c, server/security.h, server/token.c -# | -if test "$enable_server_Misc_ACL" -eq 1; then - patch_apply server-Misc_ACL/0001-server-Add-default-security-descriptor-ownership-for.patch - patch_apply server-Misc_ACL/0002-server-Add-default-security-descriptor-DACL-for-proc.patch - ( - echo '+ { "Erich E. Hoover", "server: Add default security descriptor ownership for processes.", 1 },'; - echo '+ { "Erich E. Hoover", "server: Add default security descriptor DACL for processes.", 1 },'; - ) >> "$patchlist" -fi - # Patchset server-CreateProcess_ACLs # | # | This patchset fixes the following Wine bugs: @@ -2032,6 +2019,23 @@ if test "$enable_server_CreateProcess_ACLs" -eq 1; then ) >> "$patchlist" fi +# Patchset server-Misc_ACL +# | +# | This patchset fixes the following Wine bugs: +# | * [#15980] GetSecurityInfo returns NULL DACL for process object +# | +# | Modified files: +# | * dlls/advapi32/tests/security.c, server/process.c, server/security.h, server/token.c +# | +if test "$enable_server_Misc_ACL" -eq 1; then + patch_apply server-Misc_ACL/0001-server-Add-default-security-descriptor-ownership-for.patch + patch_apply server-Misc_ACL/0002-server-Add-default-security-descriptor-DACL-for-proc.patch + ( + echo '+ { "Erich E. Hoover", "server: Add default security descriptor ownership for processes.", 1 },'; + echo '+ { "Erich E. Hoover", "server: Add default security descriptor DACL for processes.", 1 },'; + ) >> "$patchlist" +fi + # Patchset advapi32-LsaLookupSids # | # | Modified files: @@ -2056,6 +2060,21 @@ if test "$enable_advapi32_LsaLookupSids" -eq 1; then ) >> "$patchlist" fi +# Patchset amstream-GetMultiMediaStream +# | +# | This patchset fixes the following Wine bugs: +# | * [#37090] Implement AMStream GetMultiMediaStream functions +# | +# | Modified files: +# | * dlls/amstream/mediastream.c +# | +if test "$enable_amstream_GetMultiMediaStream" -eq 1; then + patch_apply amstream-GetMultiMediaStream/0001-amstream-Implement-IAMMediaStream-GetMultiMediaStrea.patch + ( + echo '+ { "Michael Müller", "amstream: Implement IAMMediaStream::GetMultiMediaStream.", 1 },'; + ) >> "$patchlist" +fi + # Patchset browseui-Progress_Dialog # | # | Modified files: