Commit Graph

876 Commits

Author SHA1 Message Date
Michael Stefaniuc f34f621291 windowscodecs: Remove redundant not-NULL check (coccinellery).
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-28 21:37:30 +01:00
Dmitry Timoshkov 361b0ed5ba windowscodecs: Move JPEG frame image data initialization from Frame::CopyPixels to Decoder::Initialize.
This is how PNG decoder does things, and it avoids image data corruption
in some cases (presumably when libjpeg reuses existing scanline data).

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-22 18:21:42 +01:00
Dmitry Timoshkov 812d03129d windowscodecs: Add support for CMYK to BGR conversion.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-21 20:25:02 +01:00
Dmitry Timoshkov 493fbabb85 windowscodecs: Avoid redundant checks when reading a TIFF tile.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-20 18:42:55 +01:00
Dmitry Timoshkov ea6118e9b7 windowscodecs: Fail earlier in TIFF decoder's Initialize method for unsupported pixel formats.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-20 18:42:53 +01:00
Dmitry Timoshkov 4af1c0c246 windowscodecs: Fix the SupportsTransparency flag value for various pixel formats.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-20 18:42:51 +01:00
Dmitry Timoshkov 7e9c178454 windowscodecs/tests: Add a test for 8bpp indexed TIFF format.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-20 18:42:48 +01:00
Sven Baars 1d8882e04b windowscodecs: Add missing source_bpp initialization (Valgrind).
Signed-off-by: Sven Baars <sven.wine@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-18 19:29:52 +01:00
Sven Baars 13eb82922c windowscodecs/tests: Fix a memory leak (Valgrind).
Signed-off-by: Sven Baars <sven.wine@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-18 19:29:50 +01:00
Dmitry Timoshkov 4cbea6a5c2 windowscodecs: Add support for 32bppRGB, 32bppRGBA and 32bppPRGBA to format converter.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-18 19:29:46 +01:00
Dmitry Timoshkov 6e7a2bd349 windowscodecs/tests: Add some tests for converting 24bppBGR to 8bppIndexed format.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-05 17:47:40 +01:00
Dmitry Timoshkov 4883556add windowscodecs/tests: Add a bunch of new tests for indexed format conversions.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-05 17:47:38 +01:00
Dmitry Timoshkov 312cd7b588 windowscodecs: Fix behaviour of format converter for indexed formats when NULL or empty palette has been provided.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-05 17:47:36 +01:00
Dmitry Timoshkov 603ac6ad21 windowscodecs: WICConvertBitmapSource should ask IWICFormatConverter::Initialize to use an optimized palette.
This matches Windows' behaviour, and makes a simple test application that
converts any WIC compatible RGB(A) source image to 8bppIndexed format work.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-05 17:47:32 +01:00
Dmitry Timoshkov 453aa45980 windowscodecs: Add a NULL check to 8bpp gray converter.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-04 15:26:29 +01:00
Dmitry Timoshkov d6c2734d72 windowscodecs: Add support for converting to 8bppIndexed format.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-04 15:26:25 +01:00
Michael Stefaniuc eb271ec4ba windowscodecs: Remove redundant NULL check before HeapFree().
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-31 18:13:18 +01:00
Michael Stefaniuc 52066ee092 windowscodecs: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-31 18:13:18 +01:00
Dmitry Timoshkov d102d6e9f7 windowscodecs: Implement IWICPalette::InitializeFromBitmap.
Based on median cut implementation created by Sebastian Lackner.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-31 18:13:18 +01:00
Sven Baars 1f132865ec windowscodecs: Fix a memory leak (Valgrind).
Signed-off-by: Sven Baars <sven.wine@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-25 10:28:58 +01:00
Dmitry Timoshkov 7ee553f411 windowscodecs: Fix the buffer size check in TIFF decoder's CopyPixels implementation.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-15 16:59:03 +01:00
Dmitry Timoshkov ebe15537d1 windowscodecs/tests: Fix typos in TIFF test data.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-10 10:03:32 -06:00
Dmitry Timoshkov 3887c04f43 windowscodecs: Simplify the buffer size check in copy_pixels() helper.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-10 10:03:20 -06:00
Dmitry Timoshkov 8cdef63178 windowscodecs/tests: Add a test for copying pixels of a 24bpp TIFF format.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-09 09:58:12 -06:00
Andrey Gusev af8d3d366c windowscodecs: Remove redundant comparison.
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-21 14:02:33 +01:00
Sven Baars a77c7626dd windowscodecs/tests: Fix a memory leak (Valgrind).
Signed-off-by: Sven Baars <sven.wine@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-19 22:12:04 +01:00
Sven Baars 7a32035fc5 windowscodecs: Fix a memory leak (Valgrind).
Signed-off-by: Sven Baars <sven.wine@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-19 22:12:03 +01:00
Dmitry Timoshkov 2407a7477f windowscodecs/tests: Add some tests for IWICPalette::InitializeFromBitmap.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-07 16:42:19 +01:00
Dmitry Timoshkov b9bb512018 windowscodecs: Implement IWICBitmapDecoder::GetMetadataQueryReader in the JPEG encoder.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-07 16:42:14 +01:00
Dmitry Timoshkov b4c3a9c089 windowscodecs: Implement IWICBitmapDecoder::GetMetadataQueryReader in the PNG decoder.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-07 16:42:13 +01:00
Dmitry Timoshkov 849807c973 windowscodecs: Implement IWICBitmapDecoder::GetMetadataQueryReader in the TIFF decoder.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-07 16:42:11 +01:00
Dmitry Timoshkov a4a5c38089 windowscodecs: Add registration for GUID_WICPixelFormat32bppGrayFloat pixel format.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-07 16:42:09 +01:00
Dmitry Timoshkov 38b222c662 windowscodecs: Implement IWICBitmapEncoder::GetEncoderInfo in PNG encoder.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-06 17:00:59 +01:00
Dmitry Timoshkov d88eb99e57 windowscodecs: Implement IWICBitmapEncoder::GetEncoderInfo in TIFF encoder.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-06 17:00:55 +01:00
Dmitry Timoshkov c2451240dc windowscodecs: Implement IWICBitmapEncoder::GetEncoderInfo in JPEG encoder.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-06 17:00:50 +01:00
Dmitry Timoshkov e246dd46ec windowscodecs: Implement IWICBitmapEncoder::GetEncoderInfo in BMP encoder.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-06 17:00:42 +01:00
Dmitry Timoshkov 7533f251e3 windowscodecs: Implement IWICBitmapEncoderInfo::GetFileExtensions.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-06 17:00:33 +01:00
Dmitry Timoshkov ee6dd81e92 windowscodecs: Add support for palette image formats to BMP encoder.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-06 17:00:26 +01:00
Dmitry Timoshkov d13d34d101 windowscodecs: Add support for palette image formats to TIFF encoder.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-06 17:00:09 +01:00
Dmitry Timoshkov 1d7da01ff1 windowscodecs/tests: Add tests for encoding 2bpp/4bpp images with a palette.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-06 16:59:49 +01:00
Alex Henrie 5b9dbd9242 windowscodecs: Make constant 'valuename_format' static.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-04 23:27:42 +01:00
Dmitry Timoshkov d90047ed91 windowscodecs: PNG decoder should return WINCODEC_ERR_UNKNOWNIMAGEFORMAT when image loading fails.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-04 23:27:42 +01:00
Dmitry Timoshkov 957d1097d2 windowscodecs: find_decoder() should return an error it received from the decoder.
If IWICBitmapDecoderInfo::MatchesPattern() has recognized the decoder by the pattern,
and the called IWICBitmapDecoder::Initialize() has failed, an error should be returned
right away instead of trying next codec. This allows report image format related errors
instead of WINCODEC_ERR_COMPONENTNOTFOUND.

Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-04 23:27:42 +01:00
Dmitry Timoshkov 5a4f5ce8b4 windowscodecs: Limit number of colors in a palette in BMP decoder.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-04 23:27:42 +01:00
Dmitry Timoshkov 0b428f8819 windowscodecs: Use V_UI1() instead of V_UNION() to assign a VT_UI1 variant member.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-04 23:27:42 +01:00
Nikolay Sivov 6704ef1430 windowscodecs: Fix InitializeFromIStream() to simply wrap target stream.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-04 23:27:39 +01:00
Nikolay Sivov fc780fe313 windowscodecs: Trace stream methods arguments.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-04 23:27:36 +01:00
Nikolay Sivov 3ad1750e45 windowscodecs/tests: Add more stream tests.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-04 23:27:33 +01:00
Nikolay Sivov 938d00cd76 windowscodecs: Implement GetContainerFormat() for encoders.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-04 23:27:29 +01:00
Nikolay Sivov 8d75d949a6 windowscodecs: Fix return values for scaler's CopyPalette().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-04 23:27:26 +01:00