Skip to content

Releases: strukturag/libheif

v1.21.1 - build fix

31 Dec 13:08

Choose a tag to compare

Please see the release notes for v1.21.0: https://github.com/strukturag/libheif/releases/tag/v1.21.0

This patch release only fixes a build error with some GCC versions because of a missing #include.
If you didn't get any build error, you do not need this updated patch release.

v1.21.0 - image sequences

29 Dec 17:06

Choose a tag to compare

This release adds full support for reading and writing HEIF image sequences.
libheif will now encode HEIF image sequences with all included codecs.
Since HEIF image sequences are very similar to MP4 videos, this new version is also capable of decoding most MP4 videos (without audio, of course).

heif-enc documentation for sequence encoding
API documentation for reading and writing sequences

Other major changes:

  • Support for image sequences with alpha channels. For most codecs, the alpha channel will be stored in a separate, auxiliary, monochrome track. For ISO/IEC 23001-17 (uncompressed) streams, the alpha channel is stored in the main video track.
  • Support for sequence track edit lists to define the number of sequence repetitions (without actually repeating the video data).
  • New encoder plugin using x264 to write H.264-compressed video streams and images.
  • The FFmpeg decoder plugin will now decode both H.265 and H.264.
  • Support for HEIF text items and language properties (thanks to @bradh).

CVEs fixed:

  • CVE-2025-68431

v1.20.2 - maintenance release

05 Aug 10:44

Choose a tag to compare

  • When opening tiled images, do not check against maximum image size immediately to allow for tile-based decoding of very large images.
  • Several smaller fixes in writing image sequences
  • CMake option to disable building of heif-view, which pulls in dependency on SDL
  • Fixes reading/writing of GIMI content IDs
  • Some build fixes

v1.20.1 - plugin loading bugfix

02 Jul 13:08
f747002

Choose a tag to compare

Fixes a bug in decoder plugin loading.
If you don't use plugins, you don't need this patch release.

The main release description (for v1.20.0) is here.

v1.20.0 - sequences API (intra only)

01 Jul 11:00

Choose a tag to compare

NOTE: there is a bug in the plugin loading code of v1.20.0. If you are building with plugins, please use v1.20.1.

Sequences:

  • API for reading and writing image sequences.
    You can read and write sequences for all codecs (not just H.265 / AV1, but also JPEG-2000, ISO-23001-17 uncompressed, ...).
    Currently only intra-coded sequences are supported.
  • API for reading and writing metadata sequences.
    The metadata tracks can contain any raw timed data.
  • Support for SAI (sample auxiliary information).
    Timed samples (from image sequences or metadata) can have auxiliary data attached.
    Currently we support TAI timestamps and GIMI content description IDs.
  • Support for track references.
  • The API for sequences is described here:
    https://github.com/strukturag/libheif/wiki/Reading-and-Writing-Sequences
  • New command line tool heif-view to show HEIF sequences (requires libSDL).

Other new features:

  • You can specify a security limit for the maximum total memory libheif may use for decoding.
    This is easier to handle than specifying limits on the maximum image size or single memory allocations.
  • Support for TAI timestamps (in images and sequences) has been promoted from
    experimental to stable.
  • FFMPEG plugin now supports HDR decoding
  • Header files are now split into individual headers by topic.
    However, it should still be backwards compatible with heif.h being a catch-all covering the old content.
    For new functionality (sequences, TAI), you will need to include the specific headers.
  • All struct names of the API are now also typedefs.

v1.19.8 - maintenance release

27 Apr 18:48

Choose a tag to compare

  • Set essential flag for transformative properties as required by MIAF. This fixes the display of AVIF images with transformations encoded by libheif in Chrome, which checks whether this flag is set.
  • If the environment variable LIBHEIF_SECURITY_LIMITS is set to OFF, libheif will not check any security limits. This can be used if a user wants to work with large images that were blocked by the security limits, but the application software does not allow to adjust the libheif security limits.
  • Resolved processing 16-bit JPEG-2000

v1.19.7 - build fix

03 Mar 11:00

Choose a tag to compare

Fixes a build error with SVT-AV1 encoder plugin when using reduced symbol visibility (#1480).

v1.19.6 - maintenance release

02 Mar 19:08

Choose a tag to compare

Bugfix release.

Additionally, there are the following changes:

  • C++ and Go wrapper licenses have been changed to MIT
  • supports SVT-AV1 v3.0.0 encoder
  • support emscripten builds for ES6 modules

Fixes

v1.19.5 - maintenance

19 Nov 19:07

Choose a tag to compare

fix heif_image_handle_is_premultiplied_alpha() #1394

v1.19.4 - maintenance

19 Nov 15:36

Choose a tag to compare

Fixes a few minor bugs:

  • fix crash when encoding tiled unci images
  • fix crash in heif_context_encode_grid()
  • fix querying the preferred colorspace for monochrome AVIF files
  • error when using a chroma format or bit depth that is not supported by the Kvazaar plugin
  • output proper error message when memory allocation failed and use user-defined security limits
  • heif-dec: do not show progress when option --quiet it given