diff --git a/README.md b/README.md index 1e457151..79888e9a 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,7 @@ Wine. All those differences are also documented on the Included bug fixes and improvements =================================== -**Bugfixes and features included in the next upcoming release [12]:** +**Bugfixes and features included in the next upcoming release [13]:** * Add semi-stub for GetFileVersionInfoExA/W ([Wine Bug #38098](https://bugs.winehq.org/show_bug.cgi?id=38098)) * Add semi-stub for GetFileVersionInfoSizeExA/W ([Wine Bug #38090](https://bugs.winehq.org/show_bug.cgi?id=38090)) @@ -49,6 +49,7 @@ Included bug fixes and improvements * Avoid race-conditions with write watches in WS2_async_accept. * Basic handling of write watches triggered while we're on the signal stack. * Do not access stack below ESP when restoring thread context. +* Ignore unsupported alpha channels in TIFF decoder ([Wine Bug #38027](https://bugs.winehq.org/show_bug.cgi?id=38027)) * Implement D3DXGetShaderOutputSemantics * Improve stubs for AEV_{Get,Set}MasterVolumeLevel * Improve stubs for AEV_{Get,Set}Mute diff --git a/debian/changelog b/debian/changelog index 2c48a102..1a8d2b60 100644 --- a/debian/changelog +++ b/debian/changelog @@ -16,6 +16,7 @@ wine-staging (1.7.37) UNRELEASED; urgency=low * Added patch to improve stubs for AEV_{Get,Set}Mute. * Added patch to implement semi-stub for GetFileVersionInfoSizeExA/W. * Added patch to implement semi-stub for GetFileVersionInfoExA/W. + * Added patch to ignore unsupported alpha channels in TIFF decoder. * Removed patches for UTF7 support (accepted upstream). * Removed patches for SIO_ADDRESS_LIST_CHANGE ioctl (accepted upstream). * Removed patch for IApplicationAssociationRegistration::QueryCurrentDefault (accepted upstream). diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 1000e7d1..c34a4882 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -180,6 +180,7 @@ patch_enable_all () enable_vcomp_Stub_Functions="$1" enable_version_VersionInfoEx="$1" enable_windowscodecs_TGA_Decoder="$1" + enable_windowscodecs_TIFF_Decoder="$1" enable_wine_inf_Performance="$1" enable_wineboot_HKEY_DYN_DATA="$1" enable_winebuild_LinkerVersion="$1" @@ -569,6 +570,9 @@ patch_enable () windowscodecs-TGA_Decoder) enable_windowscodecs_TGA_Decoder="$2" ;; + windowscodecs-TIFF_Decoder) + enable_windowscodecs_TIFF_Decoder="$2" + ;; wine.inf-Performance) enable_wine_inf_Performance="$2" ;; @@ -3126,6 +3130,21 @@ if test "$enable_windowscodecs_TGA_Decoder" -eq 1; then ) >> "$patchlist" fi +# Patchset windowscodecs-TIFF_Decoder +# | +# | This patchset fixes the following Wine bugs: +# | * [#38027] Ignore unsupported alpha channels in TIFF decoder +# | +# | Modified files: +# | * dlls/windowscodecs/tiffformat.c +# | +if test "$enable_windowscodecs_TIFF_Decoder" -eq 1; then + patch_apply windowscodecs-TIFF_Decoder/0001-windowscodecs-Ignore-unsupported-alpha-channel-in-ti.patch + ( + echo '+ { "Dmitry Timoshkov", "windowscodecs: Ignore unsupported alpha channel in tiff_get_decode_info.", 1 },'; + ) >> "$patchlist" +fi + # Patchset wine.inf-Performance # | # | This patchset fixes the following Wine bugs: diff --git a/patches/windowscodecs-TIFF_Decoder/0001-windowscodecs-Ignore-unsupported-alpha-channel-in-ti.patch b/patches/windowscodecs-TIFF_Decoder/0001-windowscodecs-Ignore-unsupported-alpha-channel-in-ti.patch new file mode 100644 index 00000000..577fd688 --- /dev/null +++ b/patches/windowscodecs-TIFF_Decoder/0001-windowscodecs-Ignore-unsupported-alpha-channel-in-ti.patch @@ -0,0 +1,38 @@ +From 905f0a28d10fa0e67b8c2580d65f9001bc15f92a Mon Sep 17 00:00:00 2001 +From: Dmitry Timoshkov +Date: Sat, 21 Feb 2015 11:23:58 +0100 +Subject: windowscodecs: Ignore unsupported alpha channel in + tiff_get_decode_info. + +--- + dlls/windowscodecs/tiffformat.c | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git a/dlls/windowscodecs/tiffformat.c b/dlls/windowscodecs/tiffformat.c +index 74a73bc..6302c28 100644 +--- a/dlls/windowscodecs/tiffformat.c ++++ b/dlls/windowscodecs/tiffformat.c +@@ -326,7 +326,19 @@ static HRESULT tiff_get_decode_info(TIFF *tiff, tiff_decode_info *decode_info) + decode_info->invert_grayscale = 1; + /* fall through */ + case 1: /* BlackIsZero */ +- if (samples != 1) ++ if (samples == 2) ++ { ++ ret = pTIFFGetField(tiff, TIFFTAG_EXTRASAMPLES, &extra_sample_count, &extra_samples); ++ if (!ret) ++ { ++ extra_sample_count = 1; ++ extra_sample = 0; ++ extra_samples = &extra_sample; ++ } ++ else ++ FIXME("ignoring extra alpha %u/%u bps %u\n", extra_sample_count, extra_samples[0], bps); ++ } ++ else if (samples != 1) + { + FIXME("unhandled grayscale sample count %u\n", samples); + return E_FAIL; +-- +2.3.0 + diff --git a/patches/windowscodecs-TIFF_Decoder/definition b/patches/windowscodecs-TIFF_Decoder/definition new file mode 100644 index 00000000..0fba27b9 --- /dev/null +++ b/patches/windowscodecs-TIFF_Decoder/definition @@ -0,0 +1 @@ +Fixes: [38027] Ignore unsupported alpha channels in TIFF decoder