From e7bf59c56f683982698edec2d4325c0681053c9b Mon Sep 17 00:00:00 2001 From: Joe Drago Date: Mon, 9 Nov 2020 12:43:26 -0800 Subject: [PATCH] v0.8.3 --- CHANGELOG.md | 34 +++++++++++++++++++++++++++++++++- CMakeLists.txt | 4 ++-- include/avif/avif.h | 10 +++++----- 3 files changed, 40 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c5f2cfe64..3e350b2aba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,37 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.8.3] - 2020-11-09 + +### Added +* SVT-AV1 encode support (jonsneyers) +* Basic libyuv support (8bpc only, see usage/limitations in avif.h) +* Refactor avifChromaUpsampling for ease in high level decision making and adding more filters in the future (minor, benign breaking change due to enum reordering) +* New CMake options: `AVIF_CODEC_AOM_DECODE`, `AVIF_CODEC_AOM_ENCODE` +* New examples in `examples/` dir (encode, decode_file, decode_memory, decode_streaming) to replace stale, not-compiled examples in README + +### Changed +* avifenc: Explicitly signal SRGB CP/TC if the source image and user don't specify, and no ICC profile is present +* Set g_lag_in_frames to 1 if encoding single image (encode memory optimization, wantehchang) +* Early-out with OK in avifParse() if the expected top-level boxes were already parsed (streaming optimization) +* Check increading item_ID and ipmaSeen in ipma box (wantehchang) +* Fail gracefully in avifEncoderAddImage() if libavif wasn't compiled with encoding support +* Add size_t casts to fix MSVC x86 compiler warnings (wantehchang) +* Link with {ZLIB_LIBRARY} after ${PNG_LIBRARY} (wantehchang) +* Fix a crash in avifJPEGRead() on fopen() failure (wantehchang) +* No need to include `${ZLIB_INCLUDE_DIR}` (wantehchang) +* Put the value of `ZLIB_INCLUDE_DIR` in the cache (wantehchang) +* Don't set image->alphaRange to yuvRange (wantehchang) +* Expose chroma sample position in decoded images (wantehchang) +* avifDecoderNthImage: tighten decoder flush (wantehchang) +* Cleanup avifIOReadFunc comments for clarity (wantehchang) +* Minor code cleanup +* Minor CMake cleanup + +### Removed + +* Remove disableGridImages from avifDecoder (wantehchang) + ## [0.8.2] - 2020-10-14 ### Added * `avifIO` reader API: allowing for parsing / image decoding without having the entire AVIF payload yet @@ -501,7 +532,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Constants `AVIF_VERSION`, `AVIF_VERSION_MAJOR`, `AVIF_VERSION_MINOR`, `AVIF_VERSION_PATCH` - `avifVersion()` function -[Unreleased]: https://github.com/AOMediaCodec/libavif/compare/v0.8.2...HEAD +[Unreleased]: https://github.com/AOMediaCodec/libavif/compare/v0.8.3...HEAD +[0.8.3]: https://github.com/AOMediaCodec/libavif/compare/v0.8.2...v0.8.3 [0.8.2]: https://github.com/AOMediaCodec/libavif/compare/v0.8.1...v0.8.2 [0.8.1]: https://github.com/AOMediaCodec/libavif/compare/v0.8.0...v0.8.1 [0.8.0]: https://github.com/AOMediaCodec/libavif/compare/v0.7.3...v0.8.0 diff --git a/CMakeLists.txt b/CMakeLists.txt index a7b90ba599..629f1f1ddb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,7 @@ cmake_minimum_required(VERSION 3.5) # and find_package() list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules") -project(libavif LANGUAGES C VERSION 0.8.2) +project(libavif LANGUAGES C VERSION 0.8.3) # Set C99 as the default set(CMAKE_C_STANDARD 99) @@ -19,7 +19,7 @@ set(CMAKE_C_STANDARD 99) # Increment MINOR. Set PATCH to 0 # If the source code was changed, but there were no interface changes: # Increment PATCH. -set(LIBRARY_VERSION_MAJOR 7) +set(LIBRARY_VERSION_MAJOR 8) set(LIBRARY_VERSION_MINOR 0) set(LIBRARY_VERSION_PATCH 0) set(LIBRARY_VERSION "${LIBRARY_VERSION_MAJOR}.${LIBRARY_VERSION_MINOR}.${LIBRARY_VERSION_PATCH}") diff --git a/include/avif/avif.h b/include/avif/avif.h index bb81ca401b..844b473528 100644 --- a/include/avif/avif.h +++ b/include/avif/avif.h @@ -16,7 +16,7 @@ extern "C" { #define AVIF_VERSION_MAJOR 0 #define AVIF_VERSION_MINOR 8 -#define AVIF_VERSION_PATCH 2 +#define AVIF_VERSION_PATCH 3 #define AVIF_VERSION (AVIF_VERSION_MAJOR * 10000) + (AVIF_VERSION_MINOR * 100) + AVIF_VERSION_PATCH typedef int avifBool; @@ -415,10 +415,10 @@ typedef enum avifChromaUpsampling typedef struct avifRGBImage { - uint32_t width; // must match associated avifImage - uint32_t height; // must match associated avifImage - uint32_t depth; // legal depths [8, 10, 12, 16]. if depth>8, pixels must be uint16_t internally - avifRGBFormat format; // all channels are always full range + uint32_t width; // must match associated avifImage + uint32_t height; // must match associated avifImage + uint32_t depth; // legal depths [8, 10, 12, 16]. if depth>8, pixels must be uint16_t internally + avifRGBFormat format; // all channels are always full range avifChromaUpsampling chromaUpsampling; // Defaults to AVIF_CHROMA_UPSAMPLING_AUTOMATIC: How to upsample non-4:4:4 UV (ignored for 444) when converting to RGB. // Unused when converting to YUV. avifRGBImageSetDefaults() prefers quality over speed. avifBool ignoreAlpha; // Used for XRGB formats, treats formats containing alpha (such as ARGB) as if they were