2021-04-23 v3.1.0
  This release adds an "all intra" mode to the encoder, which significantly
  speeds up the encoding of AVIF still images at speed 6.

  - Upgrading:
    All intra mode for encoding AVIF still images and AV1 all intra videos:
    AOM_USAGE_ALL_INTRA (2) can be passed as the 'usage' argument to
    aom_codec_enc_config_default().

    New encoder control IDs added:
      - AV1E_SET_ENABLE_DIAGONAL_INTRA: Enable diagonal (D45 to D203) intra
        prediction modes (0: false, 1: true (default)). Also available as
        "enable-diagonal-intra" for the aom_codec_set_option() function.

    New aom_tune_metric enum value: AOM_TUNE_BUTTERAUGLI. The new aomenc option
    --tune=butteraugli was added to optimize the encoder’s perceptual quality by
    optimizing the Butteraugli metric. Install libjxl (JPEG XL) and then pass
    -DCONFIG_TUNE_BUTTERAUGLI=1 to the cmake command to enable it.

    Addition of support for libvmaf 2.x.

  - Enhancements:
    Heap memory consumption for encoding AVIF still images is significantly
    reduced.

  - Bug fixes:
    Issue 2950: Conditional expression for rc->this_key_frame_forced is always
    true in find_next_key_frame()

    Issue 2988: "make install" installs the aom.h header twice

    Issue 2992: Incorrectly printing the temporal_id twice in dump_obu tool

    Issue 2998:

    Issue 2999:

    Issue 3000:

2021-02-24 v3.0.0
  This release includes compression efficiency improvement, speed improvement
  for realtime mode, as well as some new APIs.

  - Upgrading:
    Support for PSNR calculation based on stream bit-depth.

    New encoder control IDs added:
      - AV1E_SET_ENABLE_RECT_TX
      - AV1E_SET_VBR_CORPUS_COMPLEXITY_LAP
      - AV1E_GET_BASELINE_GF_INTERVAL
      - AV1E_SET_ENABLE_DNL_DENOISING

    New decoder control IDs added:
      - AOMD_GET_FWD_KF_PRESENT
      - AOMD_GET_FRAME_FLAGS
      - AOMD_GET_ALTREF_PRESENT
      - AOMD_GET_TILE_INFO
      - AOMD_GET_SCREEN_CONTENT_TOOLS_INFO
      - AOMD_GET_STILL_PICTURE
      - AOMD_GET_SB_SIZE
      - AOMD_GET_SHOW_EXISTING_FRAME_FLAG
      - AOMD_GET_S_FRAME_INFO

    New aom_tune_content enum value: AOM_CONTENT_FILM

    New aom_tune_metric enum value: AOM_TUNE_VMAF_NEG_MAX_GAIN

    Coefficient and mode update can be turned off via
    AV1E_SET_{COEFF/MODE}_COST_UPD_FREQ.

    New key & value API added, available with aom_codec_set_option() function.

    Scaling API expanded to include 1/4, 3/4 and 1/8.

  - Enhancements:
    Better multithreading performance with realtime mode.

    New speed 9 setting for faster realtime encoding.

    Smaller binary size with low bitdepth and realtime only build.

    Temporal denoiser and its optimizations on x86 and Neon.

    Optimizations for scaling.

    Faster encoding with speed settings 2 to 6 for good encoding mode.

    Improved documentation throughout the library, with function level
    documentation, tree view and support for the dot tool.

  - Bug fixes:
    Aside from those mentioned in v2.0.1 and v2.0.2, this release includes the
    following bug fixes:

    Issue 2940: Segfault when encoding with --use-16bit-internal and --limit > 1

    Issue 2941: Decoder mismatch with --rt --bit-depth=10 and --cpu-used=8

    Issue 2895: mingw-w64 i686 gcc fails to build

    Issue 2874: Separate ssse3 functions from sse2 file.

2021-02-09 v2.0.2
  This release includes several bug fixes.

  - Bug fixes:
    Issue 2643: Modify the assertion in temporal filter intrinsics.

    Issue 2648: Fix unit test ThreadTestLarge.EncoderResultTest/49
    assertion failure.

    Issue 2869: Add -Wimplicit-function-declaration as C flag only.

    Issue 2878: Avoid memset in the av1_filter_intra_predictor module
    functions.

    Issue 2903: Fix a typo bug in apply_temporal_filter_planewise.

    Call av1_setup_frame_size() when dropping a frame in the
    encode_frame_to_data_rate() function in av1/encoder/encoder.c.

2020-11-25 v2.0.1
  This release includes two bug fixes.

  - Bug fixes:
    Issue 2723: Fix crash in chroma_check() when generating a monochrome
    encoded stream in real-time mode.

    Issue 2833: Fix crash on some input when reduced still picture header is
    used in real-time mode and speed >=7.

2020-05-07 v2.0.0 "Applejack"
  First official release of libaom.
  This release includes new real-time mode and SVC support.

  - Upgrading:
    AOM_SET_POSTPROC, AOM_CODEC_CAP_POSTPROC and AOM_CODEC_USE_POSTPROC are
    removed.

    AOM_SET_DBG_* is removed.

    Multi-resolution encoding is removed.

    put_frame and put_slice callbacks are removed.

  - Enhancements:
    Full-sweep document update for codec controls.

2018-06-28 v1.0.0
  AOMedia Codec Workgroup Approved version 1.0

2016-04-07 v0.1.0 "AOMedia Codec 1"
  This release is the first Alliance for Open Media codec.
