github AOMediaCodec/libavif v1.2.0

one day ago

1.2.0 - 2025-02-25

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.

Don't miss a new libavif release

NewReleases is sending notifications on new releases.