Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.3.0 - 2019-07-22
Added
- new CMake option
AVIF_CODEC_AOM
to enable/disable the usage of AOM's codec (default: on) - new CMake option
AVIF_CODEC_DAV1D
to enable/disable the usage of dav1d's codec (default: off) codec_dav1d.c
, which provides decoding via libdav1d
- fuzz.sh which builds with afl-clang and runs afl-fuzz
- aviffuzz tool, used in fuzzing script
- fuzz inputs made with colorist
.clang-format
fileavifArray*()
functions for basic dynamic arrays when parsingmoov
box parsing- now reads ‘avis’ brands
- Split avifDecoderRead() into components for image sequences:
- avifDecoderSetSource()
- avifDecoderParse()
- avifDecoderNextImage()
- avifImageCopy()
- avifDecoderReset()
- Added decoder and image timings for image sequences
Changed
- Reorganized internal struct avifCodec to accomodate multiple codecs simultaneously (compile time; not exposed to API)
- Fix some compiler warnings
- Sanity check offsets and sizes in items table before using
- Bail out of box header advertises an impossible size
- Ran clang-format on all of src and include
- Fix copypasta leading to a memory leak in RGB planes
- Switched items and properties during parse to use dynamic arrays
- Refactored codec API to not require each codec to maintain per-plane decoder instances
- avifImage can now “not own” its planes and directly point at decoder planes to avoid copies
- aviffuzz attempts to decode all images in source material twice (using avifDecoderReset())
- Switch decoder->quality to explicit [minQuantizer, maxQuantizer], update assoc. constants
- Add examples to README
0.2.0 - 2019-06-12
Added
- Added
avifEncoder
and avifDecoder
to match avifImage
's pattern and allow for easier future parameterization
Changed
- Renamed project in cmake to
libavif
to match new official repo naming - Updated appveyor script to use
libavif
- Updated examples and apps to use new encoder/decoder pattern
0.1.4 - 2019-06-11
Added
avifPixelFormatToString()
convenience function for debugging/printingavifenc
and avifdec
“apps” which show basic bidirectional conversion to y4m
Changed
- Make calling
avifImageYUVToRGB()
upon reading an avif optional - Moved
ext/aom
submodule to use official remote - Update
ext/aom
submodule to commit 38711e7fe
Removed
- Remove all calls to
convertXYZToXYY()
as they were all unnecessary
0.1.3 - 2019-04-23
Changed
ftyp
- Change major_brand
to avif
ftyp
- Reorder compatible_brands
, add MA1A
or MA1B
when appropriate- Write
meta
box before mdat
box for streaming friendliness
0.1.2 - 2019-04-18
Added
AVIF_NCLX_COLOUR_PRIMARIES_P3
(convenient mirrored value)avifNclxColourPrimariesFind()
- Finds a builtin avifNclxColourPrimaries and name by a set of primaries
Changed
- Fixed enum name copypasta for
AVIF_NCLX_COLOUR_PRIMARIES_EG432_1
- Fix UV limited ranges when doing full<->limited range conversion
0.1.1 - 2019-04-15
Added
- Added
appveyor.yml
(exported from Appveyor) - Move
ext/aom
to a proper submodule - Update AOM to commit 3e3b9342a with minor CMake changes
Changed
- Added static library artifact zip to Windows x64 builds (Appveyor)
- Updated README to explain libavif's goals and a little more build info
- Fix clang warning in
avifVersion()
signature
0.1.0 - 2019-04-12
Added
- First version. Plenty of bugfixes and features await!
ext/aom
based off AOM commit 3563b12b with minor CMake changes- An interest and willingness to maintain this file.
- Constants
AVIF_VERSION
, AVIF_VERSION_MAJOR
, AVIF_VERSION_MINOR
, AVIF_VERSION_PATCH
avifVersion()
function