Commits on Jun 23, 2021

  1. Reenable AVIF_VERSION_DEVEL

    Joe Drago committed Jun 23, 2021
    Configuration menu
    Copy the full SHA
    791ab3f View commit details
    Browse the repository at this point in the history
  2. Support for progressive AVIFs and operating point selection

    * Support for parsing boxes: a1op, a1lx, lsel
    * Added operating point and "skip" support to avifCodec impls for layer selection support
    * Reworked avifdec decoding to support nth image decoding and minor optimization
    * New avifProgressiveState enum to expose info about progressive AVIFs to users of libavif
    * New avifdec args: --progressive, --index
    Joe Drago authored and joedrago committed Jun 23, 2021
    Configuration menu
    Copy the full SHA
    bffba3b View commit details
    Browse the repository at this point in the history
  3. Add automatic tile scaling to the item's ispe or track's dims

    (rough draft, scale.c needs more work)
    Joe Drago authored and joedrago committed Jun 23, 2021
    Configuration menu
    Copy the full SHA
    46104d6 View commit details
    Browse the repository at this point in the history
  4. Updates from early review from WTC

    Joe Drago authored and joedrago committed Jun 23, 2021
    Configuration menu
    Copy the full SHA
    e79bc37 View commit details
    Browse the repository at this point in the history
  5. Switch from "skip" (index-based) lsel implementation to spatial_id ma…

    …tching
    Joe Drago authored and joedrago committed Jun 23, 2021
    Configuration menu
    Copy the full SHA
    9d19546 View commit details
    Browse the repository at this point in the history
  6. Additional changes from requests in PR #640

    Joe Drago authored and joedrago committed Jun 23, 2021
    Configuration menu
    Copy the full SHA
    8df04be View commit details
    Browse the repository at this point in the history
  7. Fix NULL dereference of sample when checking spatialID

    Joe Drago authored and joedrago committed Jun 23, 2021
    Configuration menu
    Copy the full SHA
    9c6281d View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    487e342 View commit details
    Browse the repository at this point in the history
  9. Regenerate tests.json

    Joe Drago committed Jun 23, 2021
    Configuration menu
    Copy the full SHA
    161aacc View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    11d6725 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    633259c View commit details
    Browse the repository at this point in the history
  12. Add diagnostic messages for AV1 decode failures

    Add diagnostic messages for all AVIF_RESULT_DECODE_ALPHA_FAILED or
    AVIF_RESULT_DECODE_COLOR_FAILED errors.
    wantehchang authored and joedrago committed Jun 23, 2021
    Configuration menu
    Copy the full SHA
    9b68bf6 View commit details
    Browse the repository at this point in the history

Commits on Jun 24, 2021

  1. Make avifDecoderItemMaxExtent progressive-aware (#683)

    * Make avifDecoderItemMaxExtent progressive-aware
    joedrago committed Jun 24, 2021
    Configuration menu
    Copy the full SHA
    c0758eb View commit details
    Browse the repository at this point in the history
  2. Re-map libavif-libaom speed settings (#682)

    Make libavif speed setting to map 1-to-1 to libaom speed setting.
    Adjust usage for speed >= 7 according to AOM_USAGE_ALL_INTRA
    availability and sequence coding.
    fkyslov committed Jun 24, 2021
    Configuration menu
    Copy the full SHA
    c64878c View commit details
    Browse the repository at this point in the history
  3. Fix avifDecoderItemMaxExtent() - compensate for sample->offset correc…

    …tly (#687)
    
    * Fix avifDecoderItemMaxExtent() - compensate for sample->offset correctly
    joedrago committed Jun 24, 2021
    Configuration menu
    Copy the full SHA
    2dde71d View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2021

  1. Bump of version in CMakeLists.txt was forgotten

    Ideally should use this line and PROJECT_VERSION_* variables to generate include/avif/avif.h version info to keep things nicely in sync
    kmilos authored and joedrago committed Jul 1, 2021
    Configuration menu
    Copy the full SHA
    db27590 View commit details
    Browse the repository at this point in the history

Commits on Jul 13, 2021

  1. Clarify the comment for avifDecodeSample.spatialID

    Clarify the comment for the spatialID member of the avifDecodeSample
    struct. Avoid the ambiguous word "otherwise".
    
    Fix #697.
    wantehchang authored and joedrago committed Jul 13, 2021
    Configuration menu
    Copy the full SHA
    46459a7 View commit details
    Browse the repository at this point in the history
  2. Move an assertion next to the dependent statement

    In avifCodecDecodeInputFillFromDecoderItem(), the assertion
    
            assert(lselProp->u.lsel.layerID < MAX_AV1_LAYER_COUNT);
    
    is apparently intended to ensure that the following uint8_t cast is
    safe:
    
            sample->spatialID = (uint8_t)lselProp->u.lsel.layerID;
    
    So move the assertion next to that statement.
    wantehchang authored and joedrago committed Jul 13, 2021
    Configuration menu
    Copy the full SHA
    6ff9c4e View commit details
    Browse the repository at this point in the history
  3. Call avifDecoderNextImage in while loop condition

    Call avifDecoderNextImage() in an assignment statement in the while
    loop's conditional expression. This allows us to have only one
    avifDecoderNextImage() call.
    wantehchang authored and joedrago committed Jul 13, 2021
    Configuration menu
    Copy the full SHA
    c3c8afb View commit details
    Browse the repository at this point in the history
  4. Better message for unsupported file extension

    Improve the error message for an unsupported output file extension. If
    we reach here, we recognize the file extension (currently only .avif),
    but the file cannot be the output from avifdec. So the error message
    "Unrecognized file extension" is a little confusing.
    wantehchang authored and joedrago committed Jul 13, 2021
    Configuration menu
    Copy the full SHA
    4f10704 View commit details
    Browse the repository at this point in the history
  5. Remove unneeded null check for decoder

    Remove the unneeded null check for 'decoder' under the 'cleanup' label.
    The 'decoder' variable is initialized as follows:
    
        avifDecoder * decoder = avifDecoderCreate();
        decoder->maxThreads = jobs;
        decoder->codecChoice = codecChoice;
        ...
    
    so it cannot possibly be a null pointer.
    wantehchang authored and joedrago committed Jul 13, 2021
    Configuration menu
    Copy the full SHA
    e4b118f View commit details
    Browse the repository at this point in the history

Commits on Jul 14, 2021

  1. Compare partialByteCount with item->size - offset

    Compare partialByteCount with item->size - offset rather than
    item->size, because the read should start from 'offset'.
    wantehchang authored and joedrago committed Jul 14, 2021
    Configuration menu
    Copy the full SHA
    905296e View commit details
    Browse the repository at this point in the history
  2. Merge nested ifs with &&

    wantehchang authored and joedrago committed Jul 14, 2021
    Configuration menu
    Copy the full SHA
    3461524 View commit details
    Browse the repository at this point in the history
  3. Remove a change from the 0.9.2 section

    The change "Don't need to disable MSVC warnings 5031 and 5032 (#681)"
    is a change to commit 5a98790 (the
    "-j all" option of avifenc and avifdec), which was added during the
    0.9.2 development cycle. So this change is not a change to older
    releases and does not need to be documented as a change in 0.9.2.
    wantehchang authored and joedrago committed Jul 14, 2021
    Configuration menu
    Copy the full SHA
    e8a4887 View commit details
    Browse the repository at this point in the history
  4. Do not copy input image when encoding with libaom

    Avoid the heap allocation of aomImage plane buffers and copying of input
    image in aomCodecEncodeImage(). This requires manually setting up the
    aom_image_t struct 'aomImage'.
    
    Fix #694.
    wantehchang authored and joedrago committed Jul 14, 2021
    Configuration menu
    Copy the full SHA
    ea3e97e View commit details
    Browse the repository at this point in the history
  5. Assert the presence of the alpha plane (if necessary) in avifImageYUV…

    …AnyToRGBAnySlow()
    Joe Drago authored and joedrago committed Jul 14, 2021
    Configuration menu
    Copy the full SHA
    772b49e View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2021

  1. Configuration menu
    Copy the full SHA
    37eefca View commit details
    Browse the repository at this point in the history

Commits on Jul 16, 2021

  1. Changes to comments and CHANGELOG.md

    wantehchang authored and joedrago committed Jul 16, 2021
    Configuration menu
    Copy the full SHA
    9acef43 View commit details
    Browse the repository at this point in the history
  2. Fix the comment for AVIF_STRICT_PIXI_REQUIRED

    The old comment describes the behavior when this bit is disabled. The
    comment should describe the behavior when this bit is enabled.
    wantehchang authored and joedrago committed Jul 16, 2021
    Configuration menu
    Copy the full SHA
    be1dde0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f8b782a View commit details
    Browse the repository at this point in the history

Commits on Jul 20, 2021

  1. Update libavif.pc.cmake (#692)

    Use full paths and move configure w/install
    kmilos committed Jul 20, 2021
    Configuration menu
    Copy the full SHA
    6f60df8 View commit details
    Browse the repository at this point in the history

Commits on Jul 23, 2021

  1. Checkout libaom v3.1.2

    wantehchang authored and joedrago committed Jul 23, 2021
    Configuration menu
    Copy the full SHA
    0c5e26a View commit details
    Browse the repository at this point in the history
  2. Update a comment with libaom v3.1.2

    Also fix a comment typo (libaom, not libavif).
    wantehchang committed Jul 23, 2021
    Configuration menu
    Copy the full SHA
    ce2f338 View commit details
    Browse the repository at this point in the history
  3. avifdec: Add PNG compression level arg

    Fixes: #706
    Joe Drago authored and joedrago committed Jul 23, 2021
    Configuration menu
    Copy the full SHA
    c7301f3 View commit details
    Browse the repository at this point in the history
  4. In 32-bit builds set frame_size_limit to 8192*8192

    This avoids the following dav1d_log() message in 32-bit builds:
        Frame size limit reduced from 268435456 to 67108864.
    wantehchang committed Jul 23, 2021
    Configuration menu
    Copy the full SHA
    1556f21 View commit details
    Browse the repository at this point in the history

Commits on Jul 28, 2021

  1. Copy input image data if width or height is 1

    Commit ea3e97e eliminated the
    unnecessary copying of input image data into the aom_image_t struct, but
    it exposed a libaom bug (https://crbug.com/aomedia/3113). Work around
    the libaom bug by resurrecting the original code that copies input image
    data and using it when the image width or height is equal to 1.
    wantehchang committed Jul 28, 2021
    Configuration menu
    Copy the full SHA
    c3c158f View commit details
    Browse the repository at this point in the history

Commits on Aug 3, 2021

  1. Configuration menu
    Copy the full SHA
    1a39d1a View commit details
    Browse the repository at this point in the history

Commits on Aug 4, 2021

  1. Skip YUV/RGB conversion tests except first image

    Skip the YUV<->RGB conversion tests except for the first loop iteration
    (loop == 0) and the first image of an image sequence. The YUV<->RGB
    conversion tests are time-consuming for large images, so we should try
    to avoid duplicate tests.
    wantehchang committed Aug 4, 2021
    Configuration menu
    Copy the full SHA
    5fb03ad View commit details
    Browse the repository at this point in the history

Commits on Aug 6, 2021

  1. Make image size limit configurable, expose to avifdec

    Adapted from Joe Drago's pull request
    #527, with the limitation
    that decoder->imageSizeLimit must be less than or equal to the default
    value and must not be set to 0 (reserved for future use). This way we
    don't need to audit our code for integer overflows due to a large image
    width or height.
    
    Set decoder->imageSizeLimit to 11 * 1024 * 10 * 1024 in
    avif_decode_fuzzer.cc to keep its memory consumption under 2560 MB.
    
    #263
    wantehchang committed Aug 6, 2021
    Configuration menu
    Copy the full SHA
    980d585 View commit details
    Browse the repository at this point in the history
  2. Test avifImageRGBToYUV() with upsamplingsIndex=0

    Since avifImageRGBToYUV() ignores rgb.chromaUpsampling, we only need to
    test avifImageRGBToYUV() with a single upsamplingsIndex.
    wantehchang committed Aug 6, 2021
    Configuration menu
    Copy the full SHA
    f7b7f57 View commit details
    Browse the repository at this point in the history
  3. Add diagnostic messages if imageSizeLimit exceeded

    Add custom diagnostic messages if item size, track size, or grid
    dimensions exceed imageSizeLimit.
    
    Related to #263.
    wantehchang committed Aug 6, 2021
    Configuration menu
    Copy the full SHA
    bd1492e View commit details
    Browse the repository at this point in the history

Commits on Aug 11, 2021

  1. Check for scale values that cause overflow (#735)

    * Check for scale values that cause overflow
    
    This addresses #734
    FrankGalligan committed Aug 11, 2021
    Configuration menu
    Copy the full SHA
    514a1fb View commit details
    Browse the repository at this point in the history

Commits on Aug 24, 2021

  1. When creating the read buffer in avifDecoderItemRead(), always make t…

    …he buffer the item's full size
    
    This avoids progressive image partial item reads causing reallocs of this buffer, which can cause
    dangling pointers in the underlying AV1 decoders (use-after-free). As the natural pattern of this
    type of usage is to ultimately decode the final image, those additional reallocations are also
    typically unnecessary overhead, as we'll eventually be using this sized buffer anyway.
    
    This should address Chromium issue 1239472.
    Joe Drago authored and joedrago committed Aug 24, 2021
    Configuration menu
    Copy the full SHA
    cb2660e View commit details
    Browse the repository at this point in the history
  2. Allocate alpha alongside YUV (if necessary) during y4m decode to avoi…

    …d incorrect alphaRowBytes math
    Joe Drago authored and joedrago committed Aug 24, 2021
    Configuration menu
    Copy the full SHA
    641039c View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2021

  1. Change avif_decode_fuzzer to be more like Chrome

    Allow progressive decoding and use a non-persistent avifIO object. This
    allows avif_decode_fuzzer to reproduce the AddressSanitizer
    heap-use-after-free error in https://crbug.com/1239472.
    wantehchang committed Aug 26, 2021
    Configuration menu
    Copy the full SHA
    d7b0903 View commit details
    Browse the repository at this point in the history

Commits on Sep 1, 2021

  1. NON-STANDARD: Allow alpha subimage items to not have an ispe property…

    …, infer ispe from color item
    
    See: https://crbug.com/1245673
    Joe Drago authored and wantehchang committed Sep 1, 2021
    Configuration menu
    Copy the full SHA
    efed118 View commit details
    Browse the repository at this point in the history

Commits on Sep 3, 2021

  1. Revert "NON-STANDARD: Allow alpha subimage items to not have an ispe …

    …property, infer ispe from color item"
    
    This reverts commit efed118. That
    commit is intended for Chrome 93 only.
    wantehchang committed Sep 3, 2021
    Configuration menu
    Copy the full SHA
    ea8b7e1 View commit details
    Browse the repository at this point in the history

Commits on Sep 4, 2021

  1. Configuration menu
    Copy the full SHA
    51ae7de View commit details
    Browse the repository at this point in the history

Commits on Sep 7, 2021

  1. Update codec_dav1d.c for the new threading model

    See https://code.videolan.org/videolan/dav1d/-/commit/753eef833b:
    Merge the 3 threading models into a single one
    by Victorien Le Couviour--Tuffet <victorien@videolan.org>
    mjbshaw authored and wantehchang committed Sep 7, 2021
    Configuration menu
    Copy the full SHA
    db28773 View commit details
    Browse the repository at this point in the history
  2. Compute maxFixedValueWidth in 64-bit operation

    Improve the check added in
    #735.
    
    Compute maxFixedValueWidth and maxFixedValueHeight in 64-bit
    multiplication by casting the first operand to int64_t. Otherwise, the
    first operand is an int and the second operand is a uint32_t, so the
    multiplication is 32-bit.
    
    Replace 0x7fffffff with the symbolic constant INT_MAX because the
    product will be stored in an int variable.
    wantehchang committed Sep 7, 2021
    Configuration menu
    Copy the full SHA
    8013572 View commit details
    Browse the repository at this point in the history