Clang reports itself as MSVC but doesn't allow intrinsics to be used
unconditionally independent of command-line flags like MSVC does.
Fixes: QTBUG-68551
Change-Id: I65d1ee1aa5c02b7c3a25c10c69c3d5e88129b858
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
The mac heic handler lacked support for any meta-data i/o. Most
notably, the image orientation proprty was ignored, so images read in
could be wrongly oriented.
Fixes: QTBUG-73415
Change-Id: I779f91dc28c7441b124aab4557e1abcd3e69fde9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Avoid using the tmsize_t type, since it may not be defined.
Fixes: QTBUG-74283
Change-Id: I63a496173ec08c6ceac569c516d11a4711e32649
Reviewed-by: Richard Öhlinger <richard.oehlinger@adbsafegate.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+ 43403038cf Update bundled libtiff to version 4.0.10
+ 0c8d172cf3 Update bundled libwebp to version 1.0.1
+ 7cfe47a8fe TGA handler: check for out of range image size
+ 80017a1c7f Bundled libtiff: add a number of security-related upstream patches
+ 8455ab6cb2 tiffhandler: improve stripsize
+ 2f61f40118 Bump version
Change-Id: If31999c0f727ce8b73e5ffb35e247d1106011bb9
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
[ChangeLog][Third-Party Code] Bundled libtiff was updated to version 4.0.10
Change-Id: Ib1908d09fc5847381cb03418de878fafd2001a30
Reviewed-by: Liang Qi <liang.qi@qt.io>
libtiff's default stripsize is tiny (8KB), so splitting the image into
such strips on writing would significantly hurt the compression
rate. Aim for 4MB strips instead.
Task-number: QTBUG-70820
Change-Id: I07a9a8c81edf62e802b4ae8d6729a76df15e42ac
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
[ChangeLog][Third-Party Code] The unmaintained bundled libjasper has been
removed. Building the jp2 handler will require libjasper to be present as
a system or external library.
Change-Id: Ic48cc6021fc5fb64fb369eb9621fd7a811e8e9f7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
[ChangeLog][Third-Party Code] The unmaintained bundled libmng has been
removed. Building the mng handler will require libmng to be present as
a system or external library.
Change-Id: I4a4805fa3f3088b5d581b92bfeabba7978bac5f7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This comprises the following libtiff commits, related to the listed
CVEs:
3719385a3fac5cfb20b487619a5f08abbf967cf8 CVE-2017-11613
7a092f8af2568d61993a8cc2e7a35a998d7d37be CVE-2017-11613
de144fd228e4be8aa484c3caf3d814b6fa88c6d9 CVE-2018-10963
58a898cb4459055bb488ca815c23b880c242a27d CVE-2018-8905
981e43ecae83935625c86c9118c0778c942c7048 CVE-2018-10779
[ChangeLog][TIFF] A number of security-related upstream patches has
been applied to the bundled libtiff
Change-Id: I3def9a9b91d0dd2cfd959c5e83d972beed9394d6
Reviewed-by: Liang Qi <liang.qi@qt.io>
Bound the value of the compression setting to the possible values of
the QTiffHandler::Compression enum.
Change-Id: I50e1eb8014654d8b4403d7f06e6099661e57562c
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Make the decoder fail early to avoid spending time and memory on
attempting to decode a corrupt image file.
Change-Id: Iac35e72de743f412a65d11c58fe7faa275dc4e41
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
(cherry picked from commit 7cfe47a8fe)
Make the decoder fail early to avoid spending time and memory on
attempting to decode a corrupt image file.
Change-Id: Iac35e72de743f412a65d11c58fe7faa275dc4e41
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
TIFF is one of the primary formats for HDR images.
Change-Id: I5310b5c9a625fd3e759e5120be6ba547c633c81c
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
When writing an image without compression, libtiff will automatically
store it in strips of default size, and add a ROWSPERSTRIP tag
accordingly. However, if compression is enabled, libtiff does not do
this. The lack of this tag may create trouble for readers.
Fix by explicitly setting the tag in all cases.
[ChangeLog][TIFF] Ensure saved tiffs have suitable ROWSPERSTRIP tag set
Task-number: QTBUG-68609
Change-Id: I838c83be25158d7f13e220098e960010b8cb2789
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
It became obsolete when we switched to LGPL3, as discussed on the
developer mailing list in April 2017.
Change-Id: I7364ce547f952380d8b8e32b89c09b6ace3c9188
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
In lossless mode, libwebp interpretes the quality setting as a
compression-effort setting instead. The code used to set it to 100
(maximum), which could lead to unreasonable compression times (several
seconds for a small image). Instead set it to libweb's own default value.
Also, since the alpha channel compression has its own quality setting,
make sure it follows the main quality/effort setting.
Change-Id: I595d42c61f61c9932b27b185745bde6e7cfb3526
Reviewed-by: Liang Qi <liang.qi@qt.io>
Webp files can be with or without alpha channel. The handler would
ignore this and read all as Format_ARGB32 images, and write all as
having alpha, in both cases losing that important bit of information.
As a driveby, simplify the endianness handling in write(). By always
converting the source image to an endianness-independent QImage
format, no special handling is required.
Task-number: QTBUG-48628
Change-Id: I624ed72b18a8b59a542979efcb4e8ff81214e0d7
Reviewed-by: Liang Qi <liang.qi@qt.io>