Index | Thread | Search

From:
Brad Smith <brad@comstyle.com>
Subject:
Re: UPDATE: libavif 1.0.4
To:
ports@openbsd.org
Date:
Wed, 3 Apr 2024 04:18:51 -0400

Download raw body.

Thread
ping.

On 2024-02-27 8:08 p.m., Brad Smith wrote:
> Here is an update to libavif 1.0.4.
>
>
> ## [1.0.4] - 2024-02-08
>
> ### Changed
> * 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 (b/320234262).
> * Fix identical chunk skipping optimization when writing animation data
>    (b/321189607).
> * 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).
>
> ## [1.0.3] - 2023-12-03
>
> ### Changed
> * Rewrite the fix for memory errors reported in crbug.com/1501770.
> * Fix memory errors reported in crbug.com/1504792 by [Fudan
>    University](https://secsys.fudan.edu.cn/).
> * src/reformat.c: Allocate the threadData array directly.
>
> ## [1.0.2] - 2023-11-16
>
> ### Changed
> * Update avifCropRectConvertCleanApertureBox() to the revised requirements in
>    ISO/IEC 23000-22:2019/Amd. 2:2021 Section 7.3.6.7.
> * Fix memory errors reported in crbug.com/1501766 and crbug.com/1501770 by
>    [Fudan University](https://secsys.fudan.edu.cn/).
>
> ## [1.0.1] - 2023-08-29
>
> ### Changed
> * gdk-pixbuf: Explicitly pass link directories
> * gdk-pixbuf: Fix build failure after imir.mode -> imir.axis rename
>
> ## [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.
> * 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 STATIC library target avif_internal to allow tests to access functions
>    from internal.h when BUILD_SHARED_LIBS is ON.
> * 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 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
>    avifEncoder changed from AVIF_QUANTIZER_LOSSLESS (0) to
>    AVIF_QUANTIZER_WORST_QUALITY (63). The behavior changed if minQuantizer and
>    maxQuantizer are left initialized to the default values. Code should be
>    updated to set the quality member. Similarly for the alpha quantizers and
>    qualityAlpha.
> * 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.
> * At decoding, avifIOStats now returns the same values as at encoding.
> * avifRGBImageAllocatePixels(), avifRWDataRealloc(), avifRWDataSet(),
>    avifImageSetProfileICC(), avifImageSetMetadataExif() and
>    avifImageSetMetadataXMP() now return avifResult instead of void to report
>    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().
>
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/graphics/libavif/Makefile,v
> retrieving revision 1.21
> diff -u -p -u -p -r1.21 Makefile
> --- Makefile	4 Oct 2023 15:15:40 -0000	1.21
> +++ Makefile	22 Feb 2024 08:20:22 -0000
> @@ -2,11 +2,10 @@ COMMENT=	library for encoding and decodi
>   
>   GH_ACCOUNT=	AOMediaCodec
>   GH_PROJECT=	libavif
> -GH_TAGNAME=	v0.11.1
> -REVISION=	0
> +GH_TAGNAME=	v1.0.4
>   CATEGORIES=	graphics
>   
> -SHARED_LIBS=	avif	6.0
> +SHARED_LIBS=	avif	7.0
>   
>   HOMEPAGE=	https://github.com/AOMediaCodec/libavif
>   
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/graphics/libavif/distinfo,v
> retrieving revision 1.15
> diff -u -p -u -p -r1.15 distinfo
> --- distinfo	25 Nov 2022 21:14:09 -0000	1.15
> +++ distinfo	22 Feb 2024 08:20:22 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (libavif-0.11.1.tar.gz) = DrSZZVYqDl5d5YOJZQ1DTP8yr4TDQYW2ybey/MrgbU4=
> -SIZE (libavif-0.11.1.tar.gz) = 5826813
> +SHA256 (libavif-1.0.4.tar.gz) = 3FZwjIOkuTSoryt49n+Ga6L7VoYFx8+UMSrPUe5X0UY=
> +SIZE (libavif-1.0.4.tar.gz) = 10575992
> Index: patches/patch-tests_CMakeLists_txt
> ===================================================================
> RCS file: patches/patch-tests_CMakeLists_txt
> diff -N patches/patch-tests_CMakeLists_txt
> --- patches/patch-tests_CMakeLists_txt	25 Nov 2022 21:14:09 -0000	1.1
> +++ /dev/null	1 Jan 1970 00:00:00 -0000
> @@ -1,28 +0,0 @@
> -Build aviftest_helpers for are_images_equal.cc
> -e279707a001c8f95f8a2bc51c0d19bf35bfc79ab
> -
> -Index: tests/CMakeLists.txt
> ---- tests/CMakeLists.txt.orig
> -+++ tests/CMakeLists.txt
> -@@ -39,15 +39,17 @@ foreach(AVIFYUV_MODE limited rgb) # Modes drift and pr
> -     add_test(NAME avifyuv_${AVIFYUV_MODE} COMMAND avifyuv -m ${AVIFYUV_MODE})
> - endforeach()
> -
> --################################################################################
> --# GoogleTest
> --
> --if(AVIF_ENABLE_GTEST)
> -+if(AVIF_ENABLE_GTEST OR AVIF_BUILD_APPS)
> -     enable_language(CXX)
> -     set(CMAKE_CXX_STANDARD 11)
> -     add_library(aviftest_helpers OBJECT gtest/aviftest_helpers.cc)
> -     target_link_libraries(aviftest_helpers avif_apps)
> -+endif()
> -
> -+################################################################################
> -+# GoogleTest
> -+
> -+if(AVIF_ENABLE_GTEST)
> -     if(AVIF_LOCAL_GTEST)
> -         set(GTEST_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/ext/googletest/googletest/include)
> -         set(GTEST_LIBRARIES