v1.0.0
diff --git a/CHANGELOG.md b/CHANGELOG.md
index cc9c858..0389b0d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,12 @@
## [Unreleased]
+## [1.0.0] - 2023-08-24
+
+With the 1.0.0 release, the ABI will be more stable from now on. Please note
+the allocation and initialization requirements for avifImage, avifDecoder,
+avifEncoder, and avifRGBImage in the "avif/avif.h" header.
+
List of incompatible ABI changes in this release:
* The clli member was added to the avifImage struct.
@@ -36,23 +42,33 @@
should be updated to set quality (and qualityAlpha if applicable) and leave
minQuantizer, maxQuantizer, minQuantizerAlpha, and maxQuantizerAlpha
initialized to the default values.
-* The --targetSize flag in avifenc was added to adapt the quality so that the
+* The --target-size flag in avifenc was added to adapt the quality so that the
output file size is as close to the given number of bytes as possible.
* Add the public API function avifImageIsOpaque() in avif.h.
+* Add the public API functions avifImagePlane(), avifImagePlaneRowBytes(),
+ avifImagePlaneWidth(), and avifImagePlaneHeight() in avif.h.
* Add experimental API for progressive AVIF encoding.
* Add API for multi-threaded YUV to RGB color conversion.
* Add experimental support for AV2 behind the compilation flag AVIF_CODEC_AVM.
AVIF_CODEC_CHOICE_AVM is now part of avifCodecChoice.
+* Add experimental YCgCo-R support behind the compilation flag
+ AVIF_ENABLE_EXPERIMENTAL_YCGCO_R.
* Allow lossless 4:0:0 on grayscale input.
* Add avifenc --no-overwrite flag to avoid overwriting output file.
+* Add avifenc --clli flag to set clli.
* Add support for all transfer functions when using libsharpyuv.
### Changed
+* Enable the libaom AV1E_SET_SKIP_POSTPROC_FILTERING codec control by default.
+* Use the constant rate factor (CRF) instead of the constant quantization
+ parameter (CQP) rate control mode with the SVT-AV1 encoder.
* Exif and XMP metadata is exported to PNG and JPEG files by default,
except XMP payloads larger than 65502 bytes in JPEG.
* The --grid flag in avifenc can be used for images that are not evenly divided
into cells.
* Apps must be built with libpng version 1.6.32 or above.
+* Change the encoder to write the boxes within the "stbl" box in the order of
+ stsd, stts, stsc, stsz, stco, stss.
* avifImageCopy() no longer accepts source U and V channels to be NULL for
non-4:0:0 input if Y is not NULL and if AVIF_PLANES_YUV is specified.
* The default values of the maxQuantizer and maxQuantizerAlpha members of
@@ -81,7 +97,13 @@
memory allocation failures.
* avifReadImage(), avifJPEGRead() and avifPNGRead() now remove the trailing zero
byte from read XMP chunks, if any. See avifImageFixXMP().
+* Force keyframe for alpha if color is a keyframe.
+* Write primaries and transfer characteritics info in decoded PNG.
+* Add support for reading PNG gAMA, cHRM and sRGB chunks.
* The 'mode' member of the avifImageMirror struct was renamed 'axis'.
+* Change the type of the 'depth' parameter from int to uint32_t in
+ avifFullToLimitedY(), avifFullToLimitedUV(), avifLimitedToFullY(), and
+ avifLimitedToFullUV().
## [0.11.1] - 2022-10-19
@@ -951,7 +973,8 @@
- Constants `AVIF_VERSION`, `AVIF_VERSION_MAJOR`, `AVIF_VERSION_MINOR`, `AVIF_VERSION_PATCH`
- `avifVersion()` function
-[Unreleased]: https://github.com/AOMediaCodec/libavif/compare/v0.11.1...HEAD
+[Unreleased]: https://github.com/AOMediaCodec/libavif/compare/v1.0.0...HEAD
+[1.0.0]: https://github.com/AOMediaCodec/libavif/compare/v0.11.1...v1.0.0
[0.11.1]: https://github.com/AOMediaCodec/libavif/compare/v0.11.0...v0.11.1
[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
diff --git a/CMakeLists.txt b/CMakeLists.txt
index aa89c87..c39ab1c 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.11.1)
+project(libavif LANGUAGES C VERSION 1.0.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 15)
+set(LIBRARY_VERSION_MAJOR 16)
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 6122353..b0cfa98 100644
--- a/include/avif/avif.h
+++ b/include/avif/avif.h
@@ -55,10 +55,10 @@
// and non-zero during development of the next release. This should allow for
// 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 11
-#define AVIF_VERSION_PATCH 1
-#define AVIF_VERSION_DEVEL 1
+#define AVIF_VERSION_MAJOR 1
+#define AVIF_VERSION_MINOR 0
+#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)