Skip to content

Releases: HappySeaFox/sail

v0.9.0-pre14

20 Jul 17:49
418b0a3
Compare
Choose a tag to compare
v0.9.0-pre14 Pre-release
Pre-release

AVIF: Added AVIF image format
BINDINGS/C++: Added more consts
BINDINGS/C++: Added more image() constructors
BINDINGS/C++: Avoid starting conflicting reading and writing operations
BINDINGS/C++: Refactor image_reader and image_writer
BINDINGS/C++: Update docs
COMMON: Added TRACE log level
COMMON: Added YUV pixel formats
COMMON: Added chroma_subsampling in source_image
COMMON: Move memory allocation functions into memory.h
COMMON: Remove EXIF codec feature
COMMON: Remove animated property. Use delay instead
COMMON: Remove redundant examples
COMMON: Update 'A structure' -> specific structures names
DOC: Added note on brew and updated 'brew install' command with new prefix
EXTRA: Update libs
GIF: Remove redundant check for NULL after malloc
LIBSAIL-MANIP: Fixed assigning YCbCr pixels from uint16 values
LIBSAIL: Added ?? pattern support in magic numbers
LIBSAIL: Added missing extern
LIBSAIL: Avoid dlsym in combined mode
LIBSAIL: Fix signed/unsigned mismatch
LIBSAIL: Fixed sscanf argument to use &
LIBSAIL: Make codecs info as an exported variable to avoid dlopen/dlsym
LIBSAIL: Moved functions pointers to v5_pointers.h
PNG: Allocate text lines in heap
SAIL: Added macOS 11.3 in Travis
SAIL: Fix Debian control installation rules
SAIL: Fix SAIL non-VCPKG build with SAIL_COMBINE_CODECS=ON
SAIL: Install sail-codecs CMake configs in a separate directory
SAIL: Remove macOS 10.14 from Travis to save some Travis credits
TESTS: Avoid side effects in munit_assert()
TESTS: Fix linking order in static mode
TESTS: Fixed minor memory leak in sail-dump
TIFF: Use uint32_t instead of deprecated uint32 from tifflib

v0.9.0-pre13

18 May 17:24
Compare
Choose a tag to compare
v0.9.0-pre13 Pre-release
Pre-release

Major update: reading functions now output pixels as close as possible to the source

BINDINGS/C++: Added image::convert()
BINDINGS/C++: Added image::convert_to()
BINDINGS/C++: Added image::convert_to() with options
BINDINGS/C++: Added image::is_indexed() image::is_grayscale()
BINDINGS/C++: Added more image::convert() overloads
BINDINGS/C++: Added sail::conversion_options()
BINDINGS/C++: Check pixel format to be != unknown in image::is_valid()
BINDINGS/C++: Check pixel format to be != unknown in palette::is_valid()
BINDINGS/C++: Fixed potential memory leak
BINDINGS/C++: to_sail_xxx methods now allocate data in heap
BMP: Fixed reading partial palette
CODECS: Added more error messages
COMMON: Added LUV pixel formats
COMMON: Added SAIL_CHECK_CONVERSION_OPTIONS_PTR
COMMON: Added SAIL_ERROR_INVALID_PIXEL_FORMAT
COMMON: Added SAIL_IO_OPTION_CLOSE_TO_SOURCE
COMMON: Added more pixel format comparing functions
COMMON: Added more pixel typedefs
COMMON: Added sail_copy_image_skeleton()
COMMON: Added sail_is_indexed() sail_is_grayscale()
COMMON: Fixed bytes-per-line test
COMMON: Implement CHECK functionality as functions, not macros
COMMON: Implement SAIL_TRY_OR_CLEANUP through SAIL_TRY_OR_EXECUTE
COMMON: to/from now return strings and actual converted values instead of sail_status_t
EXAMPLES: Remove deep-diver demos
EXAMPLES: v4.h -> v5.h
JPEG: Add ext output pixel formats test
JPEG: Fixed supported pixel formats for writing
JPEG: Refactor bytes_per_line calculation
JPEG: Remove obsolete comment
LIBSAIL-MANIP: Added pixel format conversion functions
PNG: Added ifdef PNG_tRNS_SUPPORTED
PNG: Fixed reading 16-bit gray+alpha images
PNG: Support indexed images with transparency
SAIL: Added all headers into add_library() calls
TESTS: Added bytes-per-line
TESTS: Added compare-pixel-sizes
TESTS: Added include guards and SOVERSION=1 in sail-comparators
TESTS: Added sail_closest_pixel_format() tests
TESTS: Fix compiling munit with C11
TESTS: Implemented sail-dump parser and printer
TESTS: Use munit_assert_memory_equal

v0.9.0-pre12

20 Mar 13:27
Compare
Choose a tag to compare
v0.9.0-pre12 Pre-release
Pre-release

BINDINGS/C++: Fixed crash with vcpkg
BINDINGS/C++: Switch to C++17
BINDINGS/C++: Added more utility functions
BINDINGS/C++: Don't copy invalid palette
BINDINGS/C++: Fixed initializing sail_io
BINDINGS/C++: Use string_view
BINDINGS/C++: [closes #51] Fix assigning shallow pixels
BMP: Add BMP codec
COMMON: Added sail_alloc_palette_for_data()
COMMON: Added sail_alloc_palette_from_data()
COMMON: Added sail_file_size()
COMMON: Added sail_read_file_contents() and sail_alloc_buffer_from_file_contents()
COMMON: Don't alter pointers on error
COMMON: Make resolution values double
COMMON: Refactor C examples
COMMON: Refactor meta data nodes
COMMON: Split read/write I/O functions into tolerant/strict variants
DOC: Update FORMATS
EXAMPLES: Fix SDL example
GIF: Added missing include
GIF: codec.info cleanup
LIBSAIL: Allow empty compressions when write features is 0
LIBSAIL: More detailed error messages
LIBSAIL: Print 'Enumerated codecs:' only when codecs are found
LIBSAIL: Update error message
SAIL: Added OSX 11 in Travis
SAIL: Fixed some CppCheck warnings
SAIL: Remove unused Debian-specific code
SAIL: Rename HAVE_ macro to SAIL_HAVE_
SAIL: Test for _Thread_local
SAIL: Update extra/ to use standard .lib names for bundled libs
TESTS: Added allocation functions test
TESTS: Added basic read/write options test
TESTS: Added iccp test
TESTS: Added io-produce-same-images test
TESTS: Added meta-data-node test
TESTS: Added palette test
TIFF: Check TIFF compressions in cmake (except for vcpkg)
TIFF: Hardcode write compressions for vcpkg (due to check_c_source_runs() peculiarity)
TIFF: Fixed checking for some compressions like PIXARLOG

v0.9.0-pre11

18 Dec 10:58
Compare
Choose a tag to compare
v0.9.0-pre11 Pre-release
Pre-release

SAIL: Added VCPKG port on Windows, Linux, macOS. Install with vcpkg install sail
SAIL: Added static compilation support with -DSAIL_STATIC=ON
SAIL: Added option to combine all codecs into a single library with -DSAIL_COMBINE_CODECS=ON
SAIL: Enable CMAKE_ENABLE_EXPORTS on UNIX with static builds to enable dlsym
SAIL: Install our bundled libs if they exist and when VCPKG is not used
SAIL: Remove INNO setup support. VCPKG is recommended instead
SAIL: Remove git depth in the travis file to avoid sporadic build errors
SAIL: Remove libraries detection with pkg-config. Always use CMake
SAIL: Update travis to use CMAKE_PREFIX_PATH instead of pkg-config
COMMON: Include missing config.h
CODECS: Rename codecs to have -codecs prefix
CODECS: Rename interface functions to have _codec suffix
CODECS: Rename private functions to have codec_private_ prefix
LIBSAIL: Always search DLLs in the sail.dll location so custom codecs can hold dependencies there
LIBSAIL: Don't fail when no codecs were found. Print a warning instead
LIBSAIL: Refactor loading code
LIBSAIL: Remove sail_codecs_path() when SAIL_COMBINE_CODECS is defined
LIBSAIL: Resolve codecs symbols in the same module to make static build finally work
LIBSAIL: Use a 'whole archive' option
JPEG: Support non-turbo jpeg
EXAMPLES: Fix SDL example to be compatible with VCPKG
EXAMPLES: Use PRIVATE in sail_enable_asan
DOC: Added -DCMAKE_BUILD_TYPE=Release
DOC: Added LUbuntu 20.04
DOC: Remove pkg-config
DOC: Reorganize sections
DOC: Update FAQ
DOC: Update README
DOC: Update SAIL installation mode
DOC: Update docs with static build
DOC: Update terminology

v0.9.0-pre10

04 Dec 12:25
Compare
Choose a tag to compare
v0.9.0-pre10 Pre-release
Pre-release
  • BINDINGS/C++: Added missing include
  • CODECS: Rename files to sail- to avoid conflicts with DLLs like tiff.dll
  • COMMON: Added sail_set_logger()
  • COMMON: Always print file and line in log messages, not only when SAIL_DEV is ON
  • COMMON: Print error code on error
  • COMMON: Refactor error macros
  • COMMON: Try to silence clang in empty while()
  • COMMON: Use more specific macros
  • COMMON: Use stat() on Windows too
  • DOC: Added CImg
  • DOC: Added EXAMPLES to the top bar
  • DOC: Added benchmarks
  • DOC: Added doc on SAIL_VCPKG
  • DOC: Added measured time
  • DOC: Added note on Intel IPP
  • DOC: Added note on VCPKG
  • DOC: Move building steps into a separate md file
  • DOC: Remove 'damn' words :)
  • DOC: Remove date
  • DOC: Removed Support
  • DOC: Reword description
  • DOC: Reword improvements
  • DOC: Update description
  • DOC: Update differences
  • DOC: Update image links
  • DOC: Update image sizes
  • DOC: Update notes on DLL search paths
  • EXAMPLES: Fix SDL example with VCPKG
  • EXTRA: Migrate to zlib-ng
  • LIBSAIL: Add sail.dll location to the DLL search path
  • LIBSAIL: Added INI_ALLOW_INLINE_COMMENTS=0 and INI_ALLOW_MULTILINE=0
  • LIBSAIL: Avoid dangling pointer
  • LIBSAIL: Bring the old implementation of strncpy0 back is it's much faster
  • LIBSAIL: Fixed a failure in sail_read_mem
  • LIBSAIL: Fixed adding sail.dll location to the DLL search path
  • LIBSAIL: Load codecs from \sail\codecs on VCPKG
  • LIBSAIL: Refactor if/else
  • LIBSAIL: Simplify functions
  • LIBSAIL: Update INIH to version 52
  • LIBSAIL: Wrap Windows-specific code
  • SAIL: Added VCPKG support
  • SAIL: Added SAIL_BUILD_EXAMPLES option
  • SAIL: Added SAIL_BUILD_TESTS option
  • SAIL: Added comments
  • SAIL: Allow VCPKG on Windows only
  • SAIL: Disable 'lib' siffixes back
  • SAIL: Make C/C++ standards a requirement
  • SAIL: Move thread-local definition to config.h
  • SAIL: Rename cmake file
  • SAIL: Reorder dirs layout
  • SAIL: Set SAIL_VCPKG to ON when SAIL_VCPKG_PORT is ON
  • SAIL: Update to 0.9.0-pre10
  • SAIL: WIP in VCPKG support
  • GIF: Code cleanup. Don't fail on broken (NULL) extensions on malformed files
  • PNG: Allocate a temp string only when the image is APNG
  • TIFF: Added SOURCE pixel format

v0.9.0-pre9

31 Oct 20:00
Compare
Choose a tag to compare
v0.9.0-pre9 Pre-release
Pre-release
  • BINDINGS/C++: Added moving ctors
  • BINDINGS/C++: Added sail::meta_data
  • BINDINGS/C++: Fixed crash on nullptr to std::string conversion
  • BINDINGS/C++: Fixed functions names
  • BINDINGS/C++: Fixed read_options copy ctor
  • BINDINGS/C++: Initialize sail_io fields
  • BINDINGS/C++: Move some ctors in read/write options to a private section
  • BINDINGS/C++: Remove unnecessary forward declarations
  • CODECS: Added GIF
  • COMMON: Added 'URL' meta data key
  • COMMON: Added EXIF meta data key
  • COMMON: Added SAIL_CHECK_DATA_PTR
  • COMMON: Added SailMetaInfo
  • COMMON: Added UNKNOWN meta data key into switch
  • COMMON: Added more error codes
  • COMMON: Fix Coverity Scan warning on continuing loop on error
  • COMMON: Fix Coverity Scan warning on dead code in switch/case
  • COMMON: Fix Coverity Scan warning on missing va_end
  • COMMON: Make interlaced_passes 1 by default
  • COMMON: Make meta data nodes to contain binary data as well
  • COMMON: Removed resolution meta data keys as they're a part of sail_resolution now
  • COMMON: Rename 'meta info' to 'meta data'
  • COMMON: Rename EXIF, IPTC, and XMP keys to HEX_
  • COMMON: Rename X/Y resolution meta info enumerators
  • COMMON: Split string and binary meta data values
  • COMMON: Update signatures of memory allocation functions sail_malloc/sail_calloc/sail_realloc
  • DOC: Added FORMATS.md
  • EXAMPLES: Added 'current frame' label in advanced demos
  • EXAMPLES: Added Stop button in advanced demos
  • EXAMPLES: Fix sail-probe
  • EXAMPLES: Fixed compilation issue with SDL2 on Mac
  • JPEG: Move the meta info saving code into a helper
  • LIBSAIL: Added key_unknown
  • LIBSAIL: Fix Coverity Scan warning on printf format
  • LIBSAIL: Fix Coverity Scan warning on using freed pointer
  • LIBSAIL: Load custom codecs from SAIL_MY_CODECS_PATH
  • PNG: Use hardcoded meta data keys for EXIF, IPTC, and XMP tags
  • SAIL: Added CMake development configs
  • SAIL: Append to ENV{PKG_CONFIG_PATH} instead of overwriting it
  • SAIL: Enable PCH on CMake >= 3.16
  • SAIL: Enable _POSIX_C_SOURCE as a compiler definition in CMake
  • SAIL: Fix setting PKG_CONFIG_PATH on Windows
  • SAIL: Include 'jobs' to allow pkg-config find the path to jpeg-turbo
  • SAIL: Include src directories only in build time
  • SAIL: Increase the magic buffer size 10 -> 16 bytes
  • SAIL: Install cmake configs on Debian
  • SAIL: Limit the git clone depth to 1 in travis
  • SAIL: Make the travis badge fetch master builds
  • SAIL: Move context-related functions into context_private.c
  • SAIL: Preserve the old CMAKE_MODULE_PATH
  • SAIL: Remove SDL2 pkg-config path as it's unused
  • SAIL: Simplify list(APPEND) constructions
  • SAIL: Split sail.c into separate files
  • TESTS: Added meta data integrity testing
  • TESTS: Fixed enum type
  • TIFF: Set a string to NULL

v0.9.0-pre8

30 Sep 20:55
Compare
Choose a tag to compare
v0.9.0-pre8 Pre-release
Pre-release
  • SAIL: Use MSVC 2019 to build setup on Windows
  • SAIL: Added libtiff-dev in Debian rules
  • SAIL: Enable more warnings with clang
  • SAIL: Enable undefined linker errors with Clang
  • SAIL: Make pkg-config to search our own build root under extra on all platforms
  • SAIL: Move plugins' dependencies into plugins' projects out of public scope
  • SAIL: Print C, CXX, and linker flags in cmake output
  • SAIL: Rename 'plugin' to 'codec'
  • SAIL: Update comments
  • SAIL: Update extra repository to the latest version
  • SAIL: Use cmake string(append) to modify CFLAGS
  • SAIL: Use extra libs as DLLs
  • COMMON: Added sail_memdup
  • COMMON: Introduce image resolution
  • COMMON: Introduce unique I/O ids so we can distinguish between I/O classes like file and memory
  • COMMON: Rename ICCP allocating functions (with_data -> from_data)
  • COMMON: Rename SAIL_ERROR_UNSUPPORTED_COMPRESSION_TYPE to SAIL_ERROR_UNSUPPORTED_COMPRESSION
  • LIBSAIL: Added System32 to the library search path to fix loading codecs with extra redist dependencies
  • LIBSAIL: Check if we can actually write the requested compression before passing it into a plugin
  • LIBSAIL: Move a private function into the module where it's actually used
  • LIBSAIL: Print more errors on SAIL_ERROR_UNSUPPORTED_PIXEL_FORMAT
  • LIBSAIL: Remove unnecessary SAIL_EXPORT
  • CODECS: Don't store invalid resolution
  • CODECS: Rename .codec.info files to .codec.info.in
  • DIST: Added 'View README Online' into the Windows installer
  • DIST: Added VC redist into the Windows installer
  • DOC: Added programming language to the README header
  • DOC: Simplify the formats table in README
  • EXAMPLES: Enable ASAN with Clang
  • EXAMPLES: Update sail-probe version to 1.2.0
  • JPEG: Read and write resolution information
  • PNG: Fixed compilation warning
  • PNG: Read and write resolution information
  • PNG: Simplify blending functions
  • TIFF: Enable ZSTD
  • TIFF: Fixed target naming for HAVE_TIFF_41
  • TIFF: Read and write resolution information
  • TIFF: Remove unused compressions
  • BINDINGS/C++: Make more methods in codec_info overloaded
  • BINDINGS/C++: Remove unnecessary friends

v0.9.0-pre7

20 Aug 10:19
Compare
Choose a tag to compare
v0.9.0-pre7 Pre-release
Pre-release
  • COMMON: Make more fields unsigned
  • COMMON: Added SAIL_ERROR_UNSUPPORTED_SEEK_WHENCE
  • COMMON: Added missing pixel formats in sail_bits_per_pixel()
  • PLUGINS: Added TIFF file format
  • PLUGINS: Make compression levels double instead of int
  • PLUGINS: Updated the reading function to accept non-const images as we modify their pixels
  • JPEG: Handle other RGB conversions from CMYK
  • JPEG: Added more output pixel formats
  • PNG: Detect if we actually can write the requested output format
  • LIBSAIL: Allocate context implicitly per thread. The public API now doesn't require contexts at all
  • LIBSAIL: Fixed getting the number of bytes written
  • LIBSAIL: Allow reading in I/O writing operations
  • LIBSAIL: Fix manipulating memory I/O source
  • LIBSAIL: Use sail_malloc() more
  • BINDINGS/C++: Fixed copying compressions
  • BINDINGS/C++: Fixed copying image meta entries
  • BINDINGS/C++: Make probe methods overloads
  • EXAMPLES: Print all meta entries in deep-diver demos
  • EXAMPLES: Support older versions of Qt

v0.9.0-pre6

22 Jul 12:18
Compare
Choose a tag to compare
v0.9.0-pre6 Pre-release
Pre-release
  • COMMON: Added more file/dir access utility functions
  • COMMON: sail_image now also holds pixels along with image information
  • PLUGINS: Scanline reading/writing interface has been refactored to read/write entire frames
  • PLUGINS: Renamed preferred_output_pixel_format to default_output_pixel_format
  • PLUGINS: Fixed saving images with default write options
  • JPEG: Fixed crash on stopping unstarted compression
  • JPEG: Fixed saving SOURCE images
  • LIBSAIL: Renamed 'bits' to 'pixels'
  • LIBSAIL: Added junior functions to read/write from/to memory
  • LIBSAIL: Wrapped memory allocation functions so they can be easily re-defined in a single place (no standard mechanism so far)
  • SAIL: macOS HomeBrew package is fully functional

Special thanks to the OpenNET community for their feedback.

v0.9.0-pre5

06 Jul 19:06
Compare
Choose a tag to compare
v0.9.0-pre5 Pre-release
Pre-release
  • DOC: Added note on plugins search algorithm
  • LIBSAIL: Document how SAIL searches for plugins
  • LIBSAIL: Dynamically build a path to SAIL plugins on Windows
  • COMMON: Added SAIL_TRY_OR_EXECUTE() macro
  • SAIL: Allow selecting a different folder to install SAIL on Windows
  • EXAMPLES: Added note on RGB and RGBA pixels to output in the advanced demos
  • EXAMPLES: Avoid settings pointers to 0 where appropriate
  • DOC: Remove the note on legacy image formats
  • DOC: Reorder the supported platforms list
  • JPEG: Fixed calculating bytes per line for CMYK images
  • JPEG: Fixed setting bytes per line
  • JPEG: Fixed setting image pixel format when the SOURCE pixel format was requested
  • JPEG: Use enum SailPixelFormat instead of just int
  • SAIL: Remove 'leak' ASAN option
  • SAIL: Enabled ASAN with Clang
  • DOC: Note on installation from source on MacOS