v0.11.0
diff --git a/CHANGELOG.md b/CHANGELOG.md index 9959acd..3945ae0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md
@@ -6,14 +6,51 @@ ## [Unreleased] +## [0.11.0] - 2022-10-12 + There are incompatible ABI changes in this release. The alphaRange member was -removed from avifImage struct. The chromaDownsampling and avoidLibYUV members -were added to the avifRGBImage struct. The imageDimensionLimit member was added -to the avifDecoder struct. avifImageCopy() and avifImageAllocatePlanes() -signatures changed. It is necessary to recompile your code. Also check the -return values of avifImageCopy() and avifImageAllocatePlanes(). +removed from the avifImage struct. The chromaDownsampling and avoidLibYUV +members were added to the avifRGBImage struct. The imageDimensionLimit member +was added to the avifDecoder struct. avifImageCopy() and +avifImageAllocatePlanes() signatures changed. It is necessary to recompile your +code. Also check the return values of avifImageCopy() and +avifImageAllocatePlanes(). + +### Added +* Add man pages for avifenc and avifdec +* Add the avifChannelIndex type alias for enum avifChannelIndex +* Add avifChromaDownsampling enum +* Add chromaDownsampling field to avifRGBImage struct +* Add support for AVIF_RGB_FORMAT_RGB_565 +* Add imageDimensionLimit field to avifDecoder struct +* Add autoTiling field to avifEncoder struct +* Add new avifResult codes AVIF_RESULT_CANNOT_CHANGE_SETTING and + AVIF_RESULT_INCOMPATIBLE_IMAGE +* Add new enum constants AVIF_PIXEL_FORMAT_COUNT and AVIF_RGB_FORMAT_COUNT +* avifdec: Add --dimension-limit, which specifies the image dimension limit + (width or height) that should be tolerated +* avifenc: Add --sharpyuv, which enables "sharp" RGB to YUV420 conversion, which + reduces artifacts caused by 420 chroma downsampling. Needs libsharpyuv (part + of the libwebp repository) at compile time. +* avifenc: Add --ignore-exif and --ignore-xmp flags. +* avifenc: Add --autotiling, which sets --tilerowslog2 and --tilecolslog2 + automatically. +* avifenc: Input Exif orientation is converted to irot/imir by default. ### Changed +* Fix memory leaks of metadata on avifenc exit +* Update the handling of 'lsel' and progressive decoding to AVIF spec v1.1.0 +* Treat an absent lsel and layer_id == 0xFFFF equivalently for backward + compatibility with earlier drafts of AVIF spec v1.1.0 +* Set libavif's own default value of cfg.rc_end_usage for libaom +* Fix https://github.com/AOMediaCodec/libavif/issues/953 +* Set the libaom-specific option -a tune=ssim by default +* Bump cmake_minimum_required from 3.5 to 3.13 +* Fix https://crbug.com/oss-fuzz/48135 +* Use several new libyuv functions in reformat_libyuv.c +* Fix SVT-AV1's issue 1957 related to uninitialized variables crashing the + encoder +* Fix https://github.com/AOMediaCodec/libavif/issues/787 * Update aom.cmd: v3.5.0 * Update rav1e.cmd: v0.5.1 * Update svt.cmd/svt.sh: v1.2.1 @@ -28,29 +65,30 @@ * avifRGBImage::chromaUpsampling now only applies to conversions that need upsampling chroma from 4:2:0 or 4:2:2 and has no impact on the use of libyuv. Set avifRGBImage::avoidLibYUV accordingly to control the use of libyuv. +* avifenc: Set the YUV format to 4:0:0 for grayscale PNGs +* Support updating encoder settings and codec-specific options during encoding +* Disable AVIF_STRICT_CLAP_VALID and AVIF_STRICT_PIXI_REQUIRED in the JNI + wrapper +* avifdec: Return proper exit code in "info" mode +* In avifenc and avifdec, treat all arguments that start with '-' as options +* Fix https://github.com/AOMediaCodec/libavif/issues/1086 * Exif and XMP metadata is imported from PNG and JPEG files. * avifImageSetMetadataExif() parses the Exif metadata and converts any Exif orientation found into transformFlags, irot and imir values. +* Write 'auxi' box for animated images with alpha channel +* Write 'auxv' as handler_type for alpha channel track +* Use PNG_COLOR_TYPE_GRAY for 8-bit grayscale output +* Replace repeated subtraction by modulo in calcGCD (fix b/246649620) +* Change avifImageCreate to take uint32_t instead of int parameters +* When writing an image sequence, check if it's safe to cast width and height to + uint16_t +* Allow clamped grid cells in avifEncoderAddImageGrid() ### Removed * alphaRange field was removed from the avifImage struct. It it presumed that alpha plane is always full range. - -### Added -* Add avifChromaDownsampling enum -* Add chromaDownsampling field to avifRGBImage struct -* Add imageDimensionLimit field to avifDecoder struct -* Add autoTiling field to avifEncoder struct -* Add AVIF_CHROMA_DOWNSAMPLING_SHARP_YUV value to avifChromaDownsampling enum -* avifdec: Add --dimension-limit, which specifies the image dimension limit - (width or height) that should be tolerated -* avifenc: Add --sharpyuv, which enables "sharp" RGB to YUV420 conversion, which - reduces artifacts caused by 420 chroma downsampling. Needs libsharpyuv (part - of the libwebp repository) at compile time. -* avifenc: Add --ignore-exif and --ignore-xmp flags. -* avifenc: Add --autotiling, which sets --tilerowslog2 and --tilecolslog2 - automatically. -* avifenc: Input Exif orientation is converted to irot/imir by default. +* The avifCodecConfigurationBox struct becomes a private type for libavif + internal use ## [0.10.1] - 2022-04-11 @@ -828,7 +866,8 @@ - Constants `AVIF_VERSION`, `AVIF_VERSION_MAJOR`, `AVIF_VERSION_MINOR`, `AVIF_VERSION_PATCH` - `avifVersion()` function -[Unreleased]: https://github.com/AOMediaCodec/libavif/compare/v0.10.1...HEAD +[Unreleased]: https://github.com/AOMediaCodec/libavif/compare/v0.11.0...HEAD +[0.11.0]: https://github.com/AOMediaCodec/libavif/compare/v0.10.1...v0.11.0 [0.10.1]: https://github.com/AOMediaCodec/libavif/compare/v0.10.0...v0.10.1 [0.10.0]: https://github.com/AOMediaCodec/libavif/compare/v0.9.3...v0.10.0 [0.9.3]: https://github.com/AOMediaCodec/libavif/compare/v0.9.2...v0.9.3
diff --git a/CMakeLists.txt b/CMakeLists.txt index d700d9c..8ddc2f2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -11,7 +11,7 @@ # Specify search path for CMake modules to be loaded by include() and find_package() list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules") -project(libavif LANGUAGES C VERSION 0.10.1) +project(libavif LANGUAGES C VERSION 0.11.0) # Set C99 as the default set(CMAKE_C_STANDARD 99) @@ -23,9 +23,9 @@ # Increment MINOR. Set PATCH to 0 # If the source code was changed, but there were no interface changes: # Increment PATCH. -set(LIBRARY_VERSION_MAJOR 14) +set(LIBRARY_VERSION_MAJOR 15) set(LIBRARY_VERSION_MINOR 0) -set(LIBRARY_VERSION_PATCH 1) +set(LIBRARY_VERSION_PATCH 0) set(LIBRARY_VERSION "${LIBRARY_VERSION_MAJOR}.${LIBRARY_VERSION_MINOR}.${LIBRARY_VERSION_PATCH}") set(LIBRARY_SOVERSION ${LIBRARY_VERSION_MAJOR})
diff --git a/include/avif/avif.h b/include/avif/avif.h index 61f2904..52b2dcf 100644 --- a/include/avif/avif.h +++ b/include/avif/avif.h
@@ -56,9 +56,9 @@ // downstream projects to do greater-than preprocessor checks on AVIF_VERSION // to leverage in-development code without breaking their stable builds. #define AVIF_VERSION_MAJOR 0 -#define AVIF_VERSION_MINOR 10 -#define AVIF_VERSION_PATCH 1 -#define AVIF_VERSION_DEVEL 1 +#define AVIF_VERSION_MINOR 11 +#define AVIF_VERSION_PATCH 0 +#define AVIF_VERSION_DEVEL 0 #define AVIF_VERSION \ ((AVIF_VERSION_MAJOR * 1000000) + (AVIF_VERSION_MINOR * 10000) + (AVIF_VERSION_PATCH * 100) + AVIF_VERSION_DEVEL)