* Fri May 09 2025 munix9@googlemail.com
- update to 1.3.0:
* Add grayscale conversions in avifImageRGBToYUV and avifImageYUVToRGB.
* Add avifRGBFormatIsGray to check whether an avifRGBFormat is gray.
* Reject the conversion in avifenc from non-monochrome/monochrome to
monochrome/non-monochrome when an ICC profile is present and not explicitly
discarded.
* Forbid encoding with AVIF_MATRIX_COEFFICIENTS_IDENTITY and
AVIF_PIXEL_FORMAT_YUV400 to be AV1 spec compatible.
* Do not go through RGB when reading/writing a grayscale PNG/JPG images in
avifenc/avifdec
* Ignore tmap items not present in grpl box
* Assume any id is present in only one altr group as per spec.
* avifpng.c: support ImageMagick app1 exif text data
* avifjpeg.c: check for uint32_t overflow before add
* Update googletest.cmd/LocalGTest.cmake: v1.16.0
* Update libjpeg.cmd/LocalJpeg.cmake: 3.1.0
* Update libsharpyuv: v1.5.0
* Update libxml2.cmd/LocalLibXml2.cmake: v2.14.0
* Update libyuv.cmd/LocalLibyuv.cmake: 4db2af62d (1909)
* Update LocalRav1e.cmake: cargo-c v0.10.12
* Update zlibpng.cmd: libpng 1.6.47
* Fix wrong Exif orientation set in JPEG or PNG output by avifdec when the input
AVIF file has an ImageRotation property with angle set to 1 or 3, has no
ImageMirror property, and carries an Exif chunk. Note that Exif orientation is
usually ignored in PNG files, so this mainly impacts JPEG files.
* Encoder: fix ispe property for tmap with grid.
* Decoder: check the ispe property of tmap items.
* Allow lowercase GUIDs in XMP when reading JPEG files.
* Update aom.cmd/LocalAom.cmake: v3.12.1
* Change avifenc to start in automatic tiling mode.
* Always forward Unspecified (2) CICP color primaries, transfer characteristics,
and matrix coefficients to the AV1 encoder. Rely on the 'colr' box instead.
* Declare *RowBytes as size_t in avifImageRGBToYUV()
(CVE-2025-48175, bsc#1243270)
* Check ftell returned value in avifjpeg.c
* Add integer overflow checks to makeRoom.
(CVE-2025-48174, bsc#1243269)
* LocalJpeg.cmake: Support multi-config generators.
- Remove 'Group:' tags.
* Mon Apr 28 2025 munix9@googlemail.com
- Disable tests due to restrictions in Factory/ring1.
* Thu Apr 24 2025 munix9@googlemail.com
- Temporary deactivation of the generation of manual pages
with pandoc due to restrictions in Factory/ring1.
(https://build.opensuse.org/request/show/1272161#comment-2136811)
* Thu Apr 17 2025 munix9@googlemail.com
- update to 1.2.1:
* Added since 1.2.0
- Add support for outputting all frames of an image sequence in avifdec.
- avifdec --index all sequence.avif out.png creates files named
- out-xxxxxxxxxx.png where xxxxxxxxxx are the zero-padded frame indices.
* Changed since 1.2.0
- Fix local libargparse dependency patch step on macOS 10.15 and earlier.
- Patch local libyuv dependency for compatibility with gcc 10.
- Use stricter C99 syntax to avoid related compilation issues.
- Update svt.cmd/svt.sh/LocalSvt.cmake to v3.0.1.
- update to 1.2.0:
* Added since 1.1.1
- Turn on the gain map API. Remove the AVIF_ENABLE_EXPERIMENTAL_GAIN_MAP CMake
flag.
- Allow YCgCo_Re and YCgCo_Ro encoding/decoding and update the enum values to
the latest CICP specification. Remove the AVIF_ENABLE_EXPERIMENTAL_YCGCO_R
CMake flag.
- Add the properties and numProperties fields to avifImage. They are filled by
the avifDecoder instance with the properties unrecognized by libavif. They are
written by the avifEncoder.
- Add avif(Un)SignedFraction structs and avifDoubleTo(Un)SignedFraction
utility functions.
- Add 'avifgainmaputil' command line tool to installed apps.
- Add avifCropRectRequiresUpsampling().
- Add experimental support for PixelInformationProperty syntax from HEIF 3rd Ed.
Amd2 behind the compilation flag AVIF_ENABLE_EXPERIMENTAL_EXTENDED_PIXI.
- Add experimental Sample Transform recipe
BIT_DEPTH_EXTENSION_12B_8B_OVERLAP_4B.
* Changed since 1.1.1
- avifenc: Allow large images to be encoded.
- Fix empty CMAKE_CXX_FLAGS_RELEASE if -DAVIF_CODEC_AOM=LOCAL -DAVIF_LIBYUV=OFF
is specified. #2365.
- Rename AVIF_ENABLE_EXPERIMENTAL_METAV1 to AVIF_ENABLE_EXPERIMENTAL_MINI and
update the experimental reduced header feature to the latest specification
draft. Rename AVIF_HEADER_REDUCED to AVIF_HEADER_MINI.
- Update the experimental Sample Transform feature behind the
AVIF_ENABLE_EXPERIMENTAL_SAMPLE_TRANSFORM CMake flag to the latest
specification draft.
- Ignore gain maps with unsupported metadata. Handle gain maps with
writer_version > 0 correctly.
- Simplify gain map API: remove the enableParsingGainMapMetadata setting, now
gain map metadata is always parsed if present and if this feature is compiled
in. Replace enableDecodingGainMap and ignoreColorAndAlpha with a bit field to
choose image content to decode. Remove gainMapPresent: users can check if
decoder->image->gainMap != NULL instead. Remove avifGainMapMetadata and
avifGainMapMetadataDouble structs.
- Write an empty HandlerBox name field instead of "libavif" (saves 7 bytes).
- Check for FileTypeBox precedence in avifParse().
- Do not write an alternative group with the same ID as an item.
- Update aom.cmd/LocalAom.cmake: v3.12.0. The new codec-specific option tune=iq
(image quality) is added in libaom v3.12.0.
- Update parseAV2SequenceHeader() and avm.cmd: research-v9.0.0
- Update dav1d.cmd/dav1d_android.sh/LocalDav1d.cmake: 1.5.1
- Update libjpeg.cmd/LocalJpeg.cmake: v3.0.4
- Update libxml2.cmd/LocalLibXml2.cmake: v2.13.5
- Update libyuv.cmd: ccdf87034 (1903)
- Update svt.cmd/svt.sh/LocalSvt.cmake to v3.0.0. When available, use
EbSvtAv1EncConfiguration::lossless and ::level_of_parallelism in libavif.
- Remove AVIF_ENABLE_GTEST CMake option. It's now implied by
AVIF_GTEST=LOCAL/SYSTEM.
- Deprecate avifEncoder's minQuantizer, maxQuantizer, minQuantizerAlpha,
and maxQuantizerAlpha fields. quality and qualityAlpha should be used
instead. Deprecate avifenc's --min, --max, --minalpha and --maxalpha
flags. -q or --qcolor and --qalpha should be used instead.
- For dependencies, the deprecated way of setting AVIF_LOCAL_* to ON is
removed. Dependency options can now only be set to OFF/LOCAL/SYSTEM.
- Change the default quality for alpha to be the same as the quality for color.
- Allow decoding subsampled images with odd Clean Aperture dimensions or offsets.
- Deprecate avifCropRectConvertCleanApertureBox() and
avifCleanApertureBoxConvertCropRect(). Replace them with
avifCropRectFromCleanApertureBox() and avifCleanApertureBoxFromCropRect().
- Write descriptive properties before transformative properties.
- Reject non-essential transformative properties.
- Treat avifenc --stdin as a regular positional file path argument.
- Update man pages based on avifenc/dec's --help message.
- android_jni: Support 16kb page size
- android_jni: Set threads to 2 instead of CPU count
- Fix overflows when dealing with alpha during YUV/RGB conversions and in
avifRGBImageAllocatePixels().
- Make avifEncoder.headerFormat a flag combination for future features.
- Rename AVIF_HEADER_FULL to AVIF_HEADER_DEFAULT. Deprecate AVIF_HEADER_FULL.
- Fix decoding image sequences with non video tracks (such as audio or subtitles).
- Fix type checking of auxiliary tracks: previously any auxiliary track was
assumed to be alpha, even if it was a different type. If the aux type is absent,
it is assumed to be alpha.
- Add libargparse-ee74d1b53bd680748af14e737378de57e2a0a954.tar.gz
- Add %check/tests
- Add man pages
* Tue Sep 10 2024 kieltux@gmail.com
- Enable building with aom and libyuv for Leap
* Sat Aug 31 2024 dmueller@suse.com
- update to 1.1.1:
* In avif.h, change "AVIF_API AVIF_NODISCARD" back to
"AVIF_NODISCARD AVIF_API" to fix clang-cl and MSVC compilation
errors in the shared library build on Windows.
* Fix -DAVIF_GTEST=SYSTEM
* Fix infe_type and codec_config_type wrongly read as byte-
aligned fields in the
* experimental feature AVIF_ENABLE_EXPERIMENTAL_METAV1.
* When building aom as a local dependency, runtime CPU
detection (`CONFIG_RUNTIME_CPU_DETECT`) is now always `ON`;
* Fix CMake config shared library leaks
* Update gain map metadata to current ISO 21496-1 draft.
* cmake: Only search for ASM_NASM language on x86_64 platforms.
* Fix "No known features for CXX compiler" CMake error.
* Fix aom link flags so that transitive library link flags are
included when aom is a static library
* Fix out-of-order 'dimg' grid associations
* Report files with an item used in multiple 'dimg' boxes with
* AVIF_RESULT_NOT_IMPLEMENTED instead of
AVIF_RESULT_INVALID_IMAGE_GRID.
* Add experimental API for reading and writing gain maps in
AVIF files.
* If enabled at compile time, add `gainMap` field to
`avifImage`,
* add `qualityGainMap` field to `avifEncoder`, add
`gainMapPresent`, `enableDecodingGainMap`,
`enableParsingGainMapMetadata` and `ignoreColorAndAlpha` to
`avifDecoder`.
* Utility functions for working with gain maps are also added.
* Gain maps allow readers that support them to display HDR
images that look good on both HDR and SDR displays.
* Add experimental support for converting jpeg files with gain
maps to AVIF files with gain maps. Requires libxml2, and the
AVIF_ENABLE_EXPERIMENTAL_GAIN_MAP compilation flag.
* Add a --qgain-map flag to control the gain map quality in
avifenc.
* Add the headerFormat member of new type avifHeaderFormat to
avifEncoder.
* Add experimental API for reading and writing "mif3"-branded
AVIF files behind the compilation flag
AVIF_ENABLE_EXPERIMENTAL_METAV1.
* Implement avifImageScale() fallback when libyuv is not
available.
* Partial import of libyuv to third_party/libyuv (new LICENSE).
* Add avifenc flag suffixes ":update" and ":u". Quality-
relative, tiling-relative and codec-specific flags can now be
positional, relative to input files.
* Add experimental support for layered AVIF encoding in
avifenc.
* Use the --layered flag to enable layered AVIF encoding.
* Layered AVIF has multiple layers, which works like frame of
animated AVIF, and layers can be rendered in progressive
manner on supported viewers
* Only aom supports layered AVIF encoding at the time of
writing.
* Add --scaling-mode flag to set scaling mode of each layer.
* This part of AV1 encoder is not as thoroughly tested, so
there are higher possibility encoder may crash when given certain
configuration or input.
* Add imageSequenceTrackPresent flag to the avifDecoder struct.
* avifImageScale() function was made part of the public ABI.
* Add avif_cxx.h as a C++ header with basic functionality.
* Add enum aliases AVIF_COLOR_PRIMARIES_SRGB,
AVIF_COLOR_PRIMARIES_BT2100,
* AVIF_COLOR_PRIMARIES_DCI_P3,
AVIF_TRANSFER_CHARACTERISTICS_PQ.
* Add avifResult enum entry AVIF_RESULT_INTERNAL_ERROR.
* Require libyuv by default (but it can still be disabled with
* -DAVIF_LIBYUV=OFF).
* Add avifdec --icc flag to override the output color profile.
* Add experimental API for reading and writing 16-bit AVIF
files behind the
* compilation flag AVIF_ENABLE_EXPERIMENTAL_SAMPLE_TRANSFORM.
* Add AVIF_CHROMA_SAMPLE_POSITION_RESERVED to
avifChromaSamplePosition enum.
* Sun Mar 17 2024 dmueller@suse.com
- update to 1.0.4:
* AVIF_ENABLE_WERROR is set to OFF by default.
* Fix wrong alpha plane deallocation when decoded tile pixel
format does not match reconstructed output image pixel format
* Fix identical chunk skipping optimization when writing
animation data
* Fix ID selection for artificial grid alpha item when decoding
a grid of tiles which each have an associated auxiliary alpha
image item (https://crbug.com/oss-fuzz/65657).
* Thu Dec 21 2023 andreas.stieger@gmx.de
- update to 1.0.3:
* Rewrite the fix for memory errors fixed in 1.0.2
* Fix use-after-free errors.
(CVE-2023-6704, boo#1218303)
* src/reformat.c: Allocate the threadData array directly
* Tue Nov 28 2023 andreas.stieger@gmx.de
- update to 1.0.2:
* Update avifCropRectConvertCleanApertureBox() to the revised
requirements in ISO/IEC 23000-22:2019/Amd. 2:2021 Section
7.3.6.7.
* CVE-2023-6350: Out of bounds memory to alphaItemIndices (boo#1217614)
* CVE-2023-6351: use-after-free in colorProperties (boo#1217615)
- drop fix-gdkpixbuf.patch
* Tue Aug 29 2023 info@paolostivanin.com
- Update to 1.0.0:
* Incompatible changes:
+ The clli member was added to the avifImage struct.
+ The repetitionCount member was added to the avifEncoder and avifDecoder
structs.
+ The quality and qualityAlpha members were added to the avifEncoder struct.
+ Check that functions returning pointers do not return NULL before accessing
those pointers.
+ Check the return value of avifEncoderSetCodecSpecificOption().
+ The maxThreads member was added to the avifRGBImage struct.
+ Check the return value of avifRGBImageAllocatePixels(), avifRWDataRealloc(),
avifRWDataSet(), avifImageSetProfileICC(), avifImageSetMetadataExif() and
avifImageSetMetadataXMP().
+ The meaning of the keyframeInterval member of avifEncoder struct has changed
slightly. When set to a value of "n",
Before: It forces a keyframe on every nth frame.
After: Any set of "n" consecutive frame will have at least one keyframe
(every nth frame may or may not be a keyframe).
* Added:
+ Add clli metadata read and write support
+ Add repetitionCount member to avifEncoder and avifDecoder structs to specify
the number of repetitions for animated image sequences.
+ Add quality and qualityAlpha to avifEncoder. Note: minQuantizer,
maxQuantizer, minQuantizerAlpha, and maxQuantizerAlpha are deprecated. Code
should be updated to set quality (and qualityAlpha if applicable) and leave
minQuantizer, maxQuantizer, minQuantizerAlpha, and maxQuantizerAlpha
initialized to the default values.
+ 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 API for multi-threaded YUV to RGB color conversion.
+ 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:
+ 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.
+ Change the encoder to write the boxes within the "stbl" box in the order of
stsd, stts, stsc, stsz, stco, stss.
+ avifImageRGBToYUV() and avifImageYUVToRGB() handle avifImage bit depths 8, 10,
12 and now also 16. Files read by apps/shared/ can output 16-bit avifImage
instances.
+ avifImageCreate(), avifImageCreateEmpty(), avifEncoderCreate() and other
internal functions now return NULL if a memory allocation failed.
+ avifEncoderSetCodecSpecificOption() now returns avifResult instead of void to
report memory allocation failures.
- Add fix-gdkpixbuf.patch.