)]}'
{
  "log": [
    {
      "commit": "092276ce89098ead06db80975173191e5fee1826",
      "tree": "18901c1b528cc5cf06d97d1ac12b3bce5ec6056d",
      "parents": [
        "f95907aa19d135bcc5d9a8621cdee149d2876260"
      ],
      "author": {
        "name": "David Sarkisyan",
        "email": "david@srkyn.com",
        "time": "Fri Aug 21 17:30:05 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 14:30:05 2026 -0700"
      },
      "message": "Reset Sample Transform depth in avifDecoderReset()\n\nSigned-off-by: David Sarkisyan \u003cdavid@srkyn.com\u003e"
    },
    {
      "commit": "f95907aa19d135bcc5d9a8621cdee149d2876260",
      "tree": "f59831ae84452c31b5f322b1f13fe2ed05e0dfbc",
      "parents": [
        "14738382d58148b674ebb359417849558be12de0"
      ],
      "author": {
        "name": "David Sarkisyan",
        "email": "davidwsarkisyan@gmail.com",
        "time": "Fri Aug 21 08:43:33 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 21 14:43:33 2026 +0200"
      },
      "message": "Reset Sample Transform state in avifDecoderReset() (#3327)\n\nClear the parsed Sample Transform expression and input count before the decode input is rebuilt. Otherwise a second reset, including one performed by avifDecoderSetSource(), encounters stale state and returns AVIF_RESULT_INTERNAL_ERROR, or asserts in debug builds.\n\nAdd coverage for direct reset and avifDecoderSetSource().\n\nSigned-off-by: David Sarkisyan \u003cdavid@srkyn.com\u003e"
    },
    {
      "commit": "14738382d58148b674ebb359417849558be12de0",
      "tree": "3e118800f7daa5c861a297dbe870d1c8774e988a",
      "parents": [
        "80aff1a1cd2c81ca0fdcf0906e4737e6a010a45e"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Aug 20 21:10:37 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 20 21:10:37 2026 -0700"
      },
      "message": "Bump the github-actions group across 1 directory with 3 updates\n\nBumps the github-actions group with 3 updates in the /.github/workflows directory: [actions/setup-java](https://github.com/actions/setup-java), [RafikFarhad/clang-format-github-action](https://github.com/rafikfarhad/clang-format-github-action) and [github/codeql-action/upload-sarif](https://github.com/github/codeql-action).\n\n\nUpdates `actions/setup-java` from 5.6.0 to 5.7.0\n- [Release notes](https://github.com/actions/setup-java/releases)\n- [Commits](https://github.com/actions/setup-java/compare/03ad4de0992f5dab5e18fcb136590ce7c4a0ac95...b6effb05e454b25005698d916606bdc6ffcbf961)\n\nUpdates `RafikFarhad/clang-format-github-action` from 6.0.1 to 7\n- [Release notes](https://github.com/rafikfarhad/clang-format-github-action/releases)\n- [Commits](https://github.com/rafikfarhad/clang-format-github-action/compare/27cc2adf6e733d30c8ce3ca3944f3b2c7b13e1f5...601dce42932921470d1acf9295faa87752162048)\n\nUpdates `github/codeql-action/upload-sarif` from 4.37.3 to 4.37.7\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/github/codeql-action/compare/e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81...ff2f1c621b7f889edc0d3c761ac2e6a3f8cdb0dd)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-java\n  dependency-version: 5.7.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n  dependency-group: github-actions\n- dependency-name: RafikFarhad/clang-format-github-action\n  dependency-version: \u00277\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n  dependency-group: github-actions\n- dependency-name: github/codeql-action/upload-sarif\n  dependency-version: 4.37.7\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: github-actions\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "80aff1a1cd2c81ca0fdcf0906e4737e6a010a45e",
      "tree": "7597f5d19203b20bb47c16048bd0cec0892e6bf8",
      "parents": [
        "109a0f3abe545f9158e9d9eecbbf035d37cc6d1b"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Thu Aug 20 18:18:20 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 20 18:18:20 2026 -0700"
      },
      "message": "Don\u0027t set aom_image fields iibaom encoder ignores\n\nDo not set the fields of the aom_image_t struct that are ignored by the libaom\nencoder: cp, tc, mc, csp, range, and monochrome. See\nhttps://aomedia-review.googlesource.com/c/aom/+/212221\n\nUpdate the latest libaom version number in comments.\n\nDelete redundant or obsolete comments."
    },
    {
      "commit": "109a0f3abe545f9158e9d9eecbbf035d37cc6d1b",
      "tree": "2397df0101ad796a67a29b1a83d196c520e22db1",
      "parents": [
        "93717e957e75ace6d5db3c61c52c4c1d7e151e09"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Thu Aug 20 13:18:45 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 20 13:18:45 2026 -0700"
      },
      "message": ".github/: run zizmor --fix\u003dall (#3326)\n\nThis change skips ci-windows-installed.yml as more investigation\nis needed into environment related failures after the update."
    },
    {
      "commit": "93717e957e75ace6d5db3c61c52c4c1d7e151e09",
      "tree": "35c4f6529bb8b4ebdc2aba244e2d5c0da5e6a311",
      "parents": [
        "bc15ac558b580b42bd1ebd8b422e02b2a5dcb24e"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Thu Aug 13 05:36:23 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 05:36:23 2026 -0700"
      },
      "message": "Simplify avifROStreamReadBoxHeader() slightly\n\nUse an equivalent function call that\u0027s slightly shorter."
    },
    {
      "commit": "bc15ac558b580b42bd1ebd8b422e02b2a5dcb24e",
      "tree": "8c758939402592c1ca82653cdfd2dc1df1603ad8",
      "parents": [
        "6868dd1a51f5a66c96fb9a0deb32087aab7515a8"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Thu Aug 13 05:21:51 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 13 05:21:51 2026 -0700"
      },
      "message": "Parse \u0027auxl\u0027 and \u0027prem\u0027 within their own box size\n\nA follow-up to PR https://github.com/AOMediaCodec/libavif/pull/3321.\n\nDelete the comments that describe the bugs that were fixed.\n\nAlso move avifROStreamSkip(\u0026s, irefHeader.size) and avifROStreamSkip(\u0026s,\ngroupHeader.size) calls to the end of the loops, which is the common\nconvention in this file."
    },
    {
      "commit": "6868dd1a51f5a66c96fb9a0deb32087aab7515a8",
      "tree": "d1106c1285c8600ccbf6092a5be3ce40ec712db9",
      "parents": [
        "d1db0c1d1b9c7bb3568ab0fd334291d188f089c1"
      ],
      "author": {
        "name": "Nexory",
        "email": "St4yl3r30@hotmail.de",
        "time": "Wed Aug 12 11:29:16 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 12 11:29:16 2026 +0200"
      },
      "message": "Parse \u0027iref\u0027 and \u0027grpl\u0027 children within their own box size (#3321)\n\navifParseItemReferenceBox() and avifParseGroupsListBox() read the child\nbox header, then read the child\u0027s fields straight from the parent stream\nand never use the size they just read. Every other child box loop in\nread.c parses the child inside a stream bounded by the child\u0027s size and\nthen skips the parent stream by that size.\n\nOn \u0027grpl\u0027 this is visible with a real file. An EntityToGroupBox may\ncarry grouping-type-specific data after the entity_id array; the MPEG\nreference software has a field for exactly that, and the \u0027prsl\u0027 group\nof ISO/IEC 14496-12 uses it. libavif consumes only the generic fields,\nthen reads the first bytes of that data as the size of the next\nEntityToGroupBox and rejects the whole file.\n\nOn \u0027iref\u0027 it is the mirror case: a reference_count that reaches past\nthe child box end is satisfied from the bytes after the box. ffmpeg and\nGPAC both reject that input.\n\nBound both loops to the child box size and skip the parent stream by it."
    },
    {
      "commit": "d1db0c1d1b9c7bb3568ab0fd334291d188f089c1",
      "tree": "bb905d5d91adb9d70c28c1c4f521dbb745f3536e",
      "parents": [
        "25a6d23f872f37c91a3df15b75e1a97f590d7c46"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Fri Aug 07 08:32:57 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Aug 07 08:32:57 2026 -0700"
      },
      "message": "Improve ToneMapTest.ToneMapRGBPaddedBaseStride\n\nThis is a follow-up to PR #3316.\n\nIn the ToneMapTest.ToneMapRGBPaddedBaseStride test, set the `base` image\nto different sample values to enable the memcmp() check at the end of\nthe test to detect the bug.\n\nAdd a comment to describe how avifImageApplyGainMap() sets the fields of\nthe \u0027toneMappedImage\u0027 in/out parameter."
    },
    {
      "commit": "25a6d23f872f37c91a3df15b75e1a97f590d7c46",
      "tree": "b5290a54a1466dfecd4a733615bcebef808681f0",
      "parents": [
        "714beb91144ac58f3e055dce77f77daf822f4e8a"
      ],
      "author": {
        "name": "evilgensec",
        "email": "evil.gen.sec@gmail.com",
        "time": "Thu Aug 06 21:46:46 2026 +0545"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 06 18:01:46 2026 +0200"
      },
      "message": "Honour the base image stride in the tone map early exit (#3316)\n\navifRGBImageApplyGainMap() has a fast path for the case where the gain map\ndoes not need to be applied and the pixel format matches. It copies the base\nimage in one memcpy sized from baseImage-\u003erowBytes, which assumes the source\nand destination strides are equal. That assumption was only checked by an\nassert(), so it disappears under NDEBUG.\n\nThe destination is normally allocated by avifRGBImageAllocatePixels(), which\nsets rowBytes to width * avifRGBImagePixelSize() with no padding, while\navif.h documents that an avifRGBImage rowBytes only has to be \"at least\n(-\u003ewidth * avifRGBImagePixelSize())\". A caller supplying a padded base image,\nwhich is what an Android Bitmap or a cropped GPU readback produces, therefore\nmakes the memcpy read and write rowBytes * height bytes into a buffer holding\nonly width * pixelSize * height.\n\nPromote the assert into the branch condition. When the strides differ the\nearly exit is skipped and control falls through to the existing per pixel\nloop, which already goes through avifGetRGBAPixel and avifSetRGBAPixel and so\nhonours both strides. There is no behaviour change when the strides are\nequal.\n\nAdd ToneMapTest.ToneMapRGBPaddedBaseStride covering a padded base stride. It\nbuilds its images in memory and needs no test data."
    },
    {
      "commit": "714beb91144ac58f3e055dce77f77daf822f4e8a",
      "tree": "66add2fbb3f4945376592d7fb1fca5ac99c521e9",
      "parents": [
        "b71e67f953b2cc905c14869296c72f266cd31683"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Aug 03 09:53:47 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 03 09:53:47 2026 +0200"
      },
      "message": "Bump the github-actions group across 2 directories with 7 updates (#3314)\n\nBumps the github-actions group with 1 update in the /.github/actions/setup-common directory: [actions/setup-python](https://github.com/actions/setup-python).\nBumps the github-actions group with 6 updates in the /.github/workflows directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [actions/checkout](https://github.com/actions/checkout) | `7.0.0` | `7.0.1` |\n| [actions/setup-java](https://github.com/actions/setup-java) | `5.4.0` | `5.6.0` |\n| [reactivecircus/android-emulator-runner](https://github.com/reactivecircus/android-emulator-runner) | `2.37.0` | `2.38.0` |\n| [RafikFarhad/clang-format-github-action](https://github.com/rafikfarhad/clang-format-github-action) | `6` | `6.0.1` |\n| [ossf/scorecard-action](https://github.com/ossf/scorecard-action) | `2.4.3` | `2.4.4` |\n| [github/codeql-action/upload-sarif](https://github.com/github/codeql-action) | `4.36.2` | `4.37.3` |\n\n\n\nUpdates `actions/setup-python` from 6.3.0 to 7.0.0\n- [Release notes](https://github.com/actions/setup-python/releases)\n- [Commits](https://github.com/actions/setup-python/compare/ece7cb06caefa5fff74198d8649806c4678c61a1...5fda3b95a4ea91299a34e894583c3862153e4b97)\n\nUpdates `actions/checkout` from 7.0.0 to 7.0.1\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0...3d3c42e5aac5ba805825da76410c181273ba90b1)\n\nUpdates `actions/setup-java` from 5.4.0 to 5.6.0\n- [Release notes](https://github.com/actions/setup-java/releases)\n- [Commits](https://github.com/actions/setup-java/compare/1bcf9fb12cf4aa7d266a90ae39939e61372fe520...03ad4de0992f5dab5e18fcb136590ce7c4a0ac95)\n\nUpdates `reactivecircus/android-emulator-runner` from 2.37.0 to 2.38.0\n- [Release notes](https://github.com/reactivecircus/android-emulator-runner/releases)\n- [Changelog](https://github.com/ReactiveCircus/android-emulator-runner/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/reactivecircus/android-emulator-runner/compare/e89f39f1abbbd05b1113a29cf4db69e7540cae5a...a421e43855164a8197daf9d8d40fe71c6996bb0d)\n\nUpdates `RafikFarhad/clang-format-github-action` from 6 to 6.0.1\n- [Release notes](https://github.com/rafikfarhad/clang-format-github-action/releases)\n- [Commits](https://github.com/rafikfarhad/clang-format-github-action/compare/40f11200e893c5e48dee28fbfe3da60d6862418d...27cc2adf6e733d30c8ce3ca3944f3b2c7b13e1f5)\n\nUpdates `ossf/scorecard-action` from 2.4.3 to 2.4.4\n- [Release notes](https://github.com/ossf/scorecard-action/releases)\n- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)\n- [Commits](https://github.com/ossf/scorecard-action/compare/4eaacf0543bb3f2c246792bd56e8cdeffafb205a...2d1146689b8cda280b9bc96326124645441f03bc)\n\nUpdates `github/codeql-action/upload-sarif` from 4.36.2 to 4.37.3\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/github/codeql-action/compare/8aad20d150bbac5944a9f9d289da16a4b0d87c1e...e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-python\n  dependency-version: 7.0.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n  dependency-group: github-actions\n- dependency-name: actions/checkout\n  dependency-version: 7.0.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: github-actions\n- dependency-name: actions/setup-java\n  dependency-version: 5.6.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n  dependency-group: github-actions\n- dependency-name: reactivecircus/android-emulator-runner\n  dependency-version: 2.38.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n  dependency-group: github-actions\n- dependency-name: RafikFarhad/clang-format-github-action\n  dependency-version: 6.0.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: github-actions\n- dependency-name: ossf/scorecard-action\n  dependency-version: 2.4.4\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: github-actions\n- dependency-name: github/codeql-action/upload-sarif\n  dependency-version: 4.37.3\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n  dependency-group: github-actions\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "b71e67f953b2cc905c14869296c72f266cd31683",
      "tree": "bb6396b0c8948482b90f408aeee1c2f3700aba9c",
      "parents": [
        "a50205d2c2b819a60e62e05d67d528966cad5e15"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Tue Jul 28 15:28:57 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 15:28:57 2026 -0700"
      },
      "message": "Document Firefox versions that support lsel 0xFFFF\n\nFirefox 155 or later will support an \u0027lsel\u0027 property whose layer_id is\n0xFFFF, see https://bugzilla.mozilla.org/show_bug.cgi?id\u003d2055813."
    },
    {
      "commit": "a50205d2c2b819a60e62e05d67d528966cad5e15",
      "tree": "9a1e5d46f40b95d14f8a2c2dddb7cacdd519bd79",
      "parents": [
        "57953b32c1d5ae09761ce8ef66141cfa78c6196f"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Tue Jul 28 15:23:30 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 28 15:23:30 2026 -0700"
      },
      "message": "Fix AvifDecodeTest.NonPersistentIOBug506387278\n\nAvifDecodeTest.NonPersistentIOBug506387278 fails when libaom or libgav1\nis used as the AV1 decoder, because the test input file\npoc_b_506387278.avif contains errors.\n\nThe first error is easier to fix. The two padding OBUs do not contain\ntrailing bits. This is fixed with the following Python script:\n\n```\nwith open(\"tests/data/poc_b_506387278.avif\", \"r+b\") as f:\n  f.seek(0x1702)\n  f.write(b\u0027\\x80\u0027)\n  f.seek(0x559a)\n  f.write(b\u0027\\x80\u0027)\n```\n\nNote: The two padding OBUs can be identified by searching for the byte\n0x7a, which is the OBU header for a padding OBU. The OBU sizes for the\ntwo padding OBUs are 0xbc 0x26 and 0xf0 0x7c, respectively, when encoded\nin leb128().\n\nThe second error is harder to fix. The data for the first image contains\npartial frame data for the second frame. The extra incomplete frame data\nmakes avifDecoderNextImage() fail when libaom or libgav1 is used as the\nAV1 decoder. Since this test is originally intended for CrabbyAvif and\ndav1d, in libavif it is used as a fuzz test, so we can relax the\nexpected results of the avifDecoderNextImage() calls in the test."
    },
    {
      "commit": "57953b32c1d5ae09761ce8ef66141cfa78c6196f",
      "tree": "3b4a58befe9c320bbd358c767d531ce83b54bf14",
      "parents": [
        "ddf4840b8f520a6c75cd58b679aaf23c96bb056a"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Jul 22 11:45:19 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 22 11:45:19 2026 +0200"
      },
      "message": "Add --ignore-exif and --ignore-xmp to avifdec (#3307)"
    },
    {
      "commit": "ddf4840b8f520a6c75cd58b679aaf23c96bb056a",
      "tree": "fb375e6c7e7290bcb97e26577725b00f57639969",
      "parents": [
        "3e6bfe809ef0c44ae5d9337d29547183c9c5a716"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Tue Jul 21 08:05:09 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 21 08:05:09 2026 -0700"
      },
      "message": "Use AVIF_IMAGE_CONTENT_NONE instead of 0\n\nThe symbolic constant AVIF_IMAGE_CONTENT_NONE is more readable."
    },
    {
      "commit": "3e6bfe809ef0c44ae5d9337d29547183c9c5a716",
      "tree": "f934cede018490f51eec508f319fd65c7dc80a3d",
      "parents": [
        "0525f64e8a9da7ed81a615a979485decc007ab44"
      ],
      "author": {
        "name": "Maryla Ustarroz-Calonge",
        "email": "maryla@google.com",
        "time": "Fri Jul 17 15:42:47 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 17 15:42:47 2026 +0200"
      },
      "message": "Add ignore exif/xmp to avifginmaputil (#3300)\n\nFixes #3297"
    },
    {
      "commit": "0525f64e8a9da7ed81a615a979485decc007ab44",
      "tree": "f5877ed331a91cef17d4e65862d71867b2a374a7",
      "parents": [
        "0f01bcb7e3296e222e991805a7cc51807bdaccba"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Fri Jul 17 06:41:56 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 17 06:41:56 2026 -0700"
      },
      "message": "Delete two unneeded avifImageCreateView() calls\n\nIf we don\u0027t modify the image view, we can omit the avifImageCreateView()\ncall."
    },
    {
      "commit": "0f01bcb7e3296e222e991805a7cc51807bdaccba",
      "tree": "69d565611313b87a4098ada26e364c75b7962a6d",
      "parents": [
        "3e70f31a5ad6fb0b545a121f958a6c10fb2359c1"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Thu Jul 16 13:28:36 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 16 13:28:36 2026 -0700"
      },
      "message": "Don\u0027t decode AV1 images if AV1 decoder unavailable\n\nA follow-up to PR https://github.com/AOMediaCodec/libavif/pull/3288. Fix\navifanimationtest test failures (avifDecoderNextImage() failed with\nAVIF_RESULT_NO_CODEC_AVAILABLE) in the \"build-static-av2 (OFF)\" CI\nworkflow."
    },
    {
      "commit": "3e70f31a5ad6fb0b545a121f958a6c10fb2359c1",
      "tree": "51722e77b9afc68b3f813bac2e58f32c066e4a22",
      "parents": [
        "478364441a6c2cef4b88c5373f428fcae203e751"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Thu Jul 16 11:30:22 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 16 11:30:22 2026 -0700"
      },
      "message": "Support ignoring alpha in imageContentToDecode\n\nAdd AVIF_IMAGE_CONTENT_COLOR and AVIF_IMAGE_CONTENT_ALPHA and allow\ndecoding color only. Decoding alpha only is still not supported.\n\nRemove the ignoreAlpha parameter from the avifImageCreateView()\nfunction. If alpha should be ignored, the caller of\navifImageCreateView() is responsible for clearing the\nAVIF_IMAGE_CONTENT_ALPHA bit in decoder-\u003eimageContentToDecode before\ndecoding (assuming srcImage is decoder-\u003eimage)."
    },
    {
      "commit": "478364441a6c2cef4b88c5373f428fcae203e751",
      "tree": "7424434504da26ed317b247f35bf1e11deecaef4",
      "parents": [
        "970e58afc8630e110f23919e6f32ff216b675eb6"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Thu Jul 16 09:37:32 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 16 09:37:32 2026 -0700"
      },
      "message": "Test alphaPresent when decoder ignores alpha\n\nModify GainMapTest.IgnoreColorAndAlpha and GainMapTest.IgnoreAll to\ncheck whether alphaPresent and other main image metadata are set when\nthe decoder ignores color and alpha.\n\nSince this requires examining the decoder\u0027s fields after\navifDecoderParse() is called, the avifDecoderReadMemory() call in\nGainMapTest.IgnoreColorAndAlpha is replaced with calls to the\nequivalent avifDecoder functions (except avifImageCopy())."
    },
    {
      "commit": "970e58afc8630e110f23919e6f32ff216b675eb6",
      "tree": "990038403b0c5e8c795c543dd4d345046560a932",
      "parents": [
        "ab00cb7424399669c190faf732fdbe02710be5ca"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Wed Jul 15 07:57:25 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 07:57:25 2026 -0700"
      },
      "message": "Bump SVT-AV1 dependency to v4.2.0"
    },
    {
      "commit": "ab00cb7424399669c190faf732fdbe02710be5ca",
      "tree": "fec926bd93a65e06437def71f8a17175a4579609",
      "parents": [
        "a9ba1effae86f6937480f091db895185682b9588"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Wed Jul 15 07:48:59 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 07:48:59 2026 -0700"
      },
      "message": "LocalLibXml2.cmake: Avoid duplicates in PREFIXES\n\nIf ${AVIF_LIBRARY_PREFIX} is equal to lib, PREFIXES will check for the\nprefix \"lib\" twice. If a compiled libxml2 library exists, we will call\nadd_library() twice. The second add_library() call will fail.\n\nAs a second fix, add an early return after finding a compiled libxml2\nlibrary."
    },
    {
      "commit": "a9ba1effae86f6937480f091db895185682b9588",
      "tree": "6d1b1e20ec197b2626506134e4d296ea084dac40",
      "parents": [
        "d0605c98085e2fe4830ed248c8b00df7e6f80643"
      ],
      "author": {
        "name": "Yoshiharu ITO",
        "email": "yochy4671@gmail.com",
        "time": "Wed Jul 15 01:47:55 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 09:47:55 2026 -0700"
      },
      "message": "Bump dav1d to 1.5.4 (#3298)"
    },
    {
      "commit": "d0605c98085e2fe4830ed248c8b00df7e6f80643",
      "tree": "9a16ef35d88dbfbafd283345cc4cccffb0581bb7",
      "parents": [
        "5d9407c5f65507a7eb6ffbecfecf53c55de1e95e"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Tue Jul 07 09:09:36 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 09:09:36 2026 -0700"
      },
      "message": "Bump libyuv to 5d03bf9ba (1949)\n\nUsed on the Chrome M151 branch, plus two more commits."
    },
    {
      "commit": "5d9407c5f65507a7eb6ffbecfecf53c55de1e95e",
      "tree": "3f5d3e3339c5e85c57ce99ae13845faf935312e7",
      "parents": [
        "5a7fef632e8db2ad98a45cb4457f0ed87967fc17"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Mon Jul 06 10:01:24 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 10:01:24 2026 -0700"
      },
      "message": "Add the ignoreICC option to avifDecoder\n\nThis allows us to remove the ignoreColorProfile parameter from the\navifImageCreateView() function.\n\nThere is a change of behavior to avifdec:\nThe message \"[--ignore-icc] Discarding ICC profile.\\n\" won\u0027t be printed\nif the --ignore-icc or --icc option is specified and the image has an\nICC profile.\n\nBug: https://github.com/AOMediaCodec/libavif/issues/3277"
    },
    {
      "commit": "5a7fef632e8db2ad98a45cb4457f0ed87967fc17",
      "tree": "18bc2d099c1c52ab35d88f9a7bc133f73b7839dc",
      "parents": [
        "0c8ee66c7fa84156b3357ff7d33cf15e00e9b84f"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Thu Jul 02 08:13:36 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 08:13:36 2026 -0700"
      },
      "message": "Remove ignoreGainMap param of avifImageCreateView\n\nRemove the ignoreGainMap parameter of the avifImageCreateView()\nfunction.\n\nAll the callers of avifImageCreateView() pass ignoreGainMap\u003dfalse to the\nfunction. (The only exception is the recursive call on the gain map\nimage, but the gain map image cannot have its own gain map image, so it\ndoesn\u0027t really matter.)"
    },
    {
      "commit": "0c8ee66c7fa84156b3357ff7d33cf15e00e9b84f",
      "tree": "87ba6603d8f4a02c38b383884881c89723d079c2",
      "parents": [
        "0ae2354ab7be59575831845f2b176c97d08e1367"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Thu Jul 02 07:10:41 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 07:10:41 2026 -0700"
      },
      "message": "Don\u0027t delete gain map metadata if ignore_gain_map\n\nIn avif::ReadImage(), if ignore_gain_map is true, don\u0027t delete gain map\nmetadata. Let the caller do that."
    },
    {
      "commit": "0ae2354ab7be59575831845f2b176c97d08e1367",
      "tree": "8d990bc50f832356093bbbbe030cc02d8cde8e9a",
      "parents": [
        "607673d8f0d619919f5a741b96e89b3458ba467b"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Thu Jul 02 06:00:38 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 06:00:38 2026 -0700"
      },
      "message": "In avifDecoderReset(), continue if foundItem\n\nThis avoids indenting the body of the original if (!foundItem)\nstatement."
    },
    {
      "commit": "607673d8f0d619919f5a741b96e89b3458ba467b",
      "tree": "d7c1abcb761bacb54836ee7c7ba209a60eb92175",
      "parents": [
        "287bdddb4c4f640d7bea689a07a0315afcdc0b9d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Jul 01 09:55:43 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 09:55:43 2026 +0200"
      },
      "message": "Bump the github-actions group across 3 directories with 5 updates (#3287)\n\nBumps the github-actions group with 1 update in the /.github/actions/cache directory: [actions/cache](https://github.com/actions/cache).\nBumps the github-actions group with 1 update in the /.github/actions/setup-common directory: [actions/setup-python](https://github.com/actions/setup-python).\nBumps the github-actions group with 3 updates in the /.github/workflows directory: [actions/checkout](https://github.com/actions/checkout), [actions/setup-java](https://github.com/actions/setup-java) and [github/codeql-action/upload-sarif](https://github.com/github/codeql-action).\n\n\nUpdates `actions/cache` from 5.0.5 to 6.1.0\n- [Release notes](https://github.com/actions/cache/releases)\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\n- [Commits](https://github.com/actions/cache/compare/27d5ce7f107fe9357f9df03efb73ab90386fccae...55cc8345863c7cc4c66a329aec7e433d2d1c52a9)\n\nUpdates `actions/setup-python` from 6.2.0 to 6.3.0\n- [Release notes](https://github.com/actions/setup-python/releases)\n- [Commits](https://github.com/actions/setup-python/compare/a309ff8b426b58ec0e2a45f0f869d46889d02405...ece7cb06caefa5fff74198d8649806c4678c61a1)\n\nUpdates `actions/checkout` from 6.0.2 to 7.0.0\n- [Release notes](https://github.com/actions/checkout/releases)\n- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/actions/checkout/compare/de0fac2e4500dabe0009e67214ff5f5447ce83dd...9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0)\n\nUpdates `actions/setup-java` from 5.2.0 to 5.4.0\n- [Release notes](https://github.com/actions/setup-java/releases)\n- [Commits](https://github.com/actions/setup-java/compare/be666c2fcd27ec809703dec50e508c2fdc7f6654...1bcf9fb12cf4aa7d266a90ae39939e61372fe520)\n\nUpdates `github/codeql-action/upload-sarif` from 4.36.0 to 4.36.2\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/github/codeql-action/compare/7211b7c8077ea37d8641b6271f6a365a22a5fbfa...8aad20d150bbac5944a9f9d289da16a4b0d87c1e)\n\n---\nupdated-dependencies:\n- dependency-name: actions/cache\n  dependency-version: 6.1.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n  dependency-group: github-actions\n- dependency-name: actions/setup-python\n  dependency-version: 6.3.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n  dependency-group: github-actions\n- dependency-name: actions/checkout\n  dependency-version: 7.0.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n  dependency-group: github-actions\n- dependency-name: actions/setup-java\n  dependency-version: 5.4.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n  dependency-group: github-actions\n- dependency-name: github/codeql-action/upload-sarif\n  dependency-version: 4.36.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: github-actions\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "287bdddb4c4f640d7bea689a07a0315afcdc0b9d",
      "tree": "728d33699bb28c9fbef567f1c56b8e0cc202af43",
      "parents": [
        "bd2703d3c8d51b53d18105c128dc533c4cf0967d"
      ],
      "author": {
        "name": "Maryla Ustarroz-Calonge",
        "email": "maryla@google.com",
        "time": "Wed Jul 01 09:47:09 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 09:47:09 2026 +0200"
      },
      "message": "Fix direct modifications of decoder-\u003eimage. (#3281)\n\nDirectly modifying it goes against the API contract.\nCreate views instead."
    },
    {
      "commit": "bd2703d3c8d51b53d18105c128dc533c4cf0967d",
      "tree": "43d395515bdd18642165ca8ab8e77465d7ba5312",
      "parents": [
        "4f3a99351e3294942911d6550d0d0dd75e52ea90"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Tue Jun 30 09:10:51 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 09:10:51 2026 -0700"
      },
      "message": "Allow any value for avifDecoder::imageSizeLimit\n\nAll known integer overflows in libavif\u0027s decoder code, excluding\nexternal dependencies, have been fixed."
    },
    {
      "commit": "4f3a99351e3294942911d6550d0d0dd75e52ea90",
      "tree": "3673895f6568717cd632593c79ff678c3e6d6711",
      "parents": [
        "89e519864258d68c1e2175cf8e7d0eb3556d4ba8"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Mon Jun 29 08:25:49 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 08:25:49 2026 -0700"
      },
      "message": "Fix comment typos"
    },
    {
      "commit": "89e519864258d68c1e2175cf8e7d0eb3556d4ba8",
      "tree": "85262f5b07f0b5483628966067177b34c3dd6b16",
      "parents": [
        "a29cfb5c59ac1ff7bee9f0af4f4df1f004102e1d"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Mon Jun 29 01:35:10 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 10:35:10 2026 +0200"
      },
      "message": "TonemapCommand::Run: Use `image` consistently (#3283)\n\nOnce the local variable `image` is declared and initialized to\ndecoder-\u003eimage, use `image` intead of `decoder-\u003eimage` consistently."
    },
    {
      "commit": "a29cfb5c59ac1ff7bee9f0af4f4df1f004102e1d",
      "tree": "380f79f6d6fb41cd60f4f127f4de63057fbe0a9f",
      "parents": [
        "ea160ac56df44c571cd5781cbc24b2aeb1419b46"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Sun Jun 28 08:37:37 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Jun 28 08:37:37 2026 -0700"
      },
      "message": "Remove revision param of johnwason/vcpkg-action\n\nA new stable release of vcpkg\n(https://github.com/microsoft/vcpkg/releases/tag/2026.06.24) is\navailable that includes svt-av1 version 3.1.2#1."
    },
    {
      "commit": "ea160ac56df44c571cd5781cbc24b2aeb1419b46",
      "tree": "bc6eb859022af7115198e13ef6ec74926d11f062",
      "parents": [
        "f349be9bce0bc5e18be0a30cc0f5cde304d5d29d"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Fri Jun 26 11:40:09 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 11:40:09 2026 -0700"
      },
      "message": "ci-windows-installed.yml: Revert to windows-latest\n\nhttps://github.com/microsoft/vcpkg/issues/52468 is fixed.\n\nSet the revision parameter of johnwason/vcpkg-action to commit\na900048467b8199f82c31411e0f1597c267fdada, which is our workaround for\nthe Visual Studio 2026 MSVC bug."
    },
    {
      "commit": "f349be9bce0bc5e18be0a30cc0f5cde304d5d29d",
      "tree": "5d89bdbbca0f8b2f9a06415e424b317329a39fdf",
      "parents": [
        "32393ae1eefc568feed206d126434cd0c28893fd"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Fri Jun 26 13:38:46 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 13:38:46 2026 +0200"
      },
      "message": "Secure GitHub actions (#3279)\n\nAdd persist-credentials: false to every workflow file.\nSee https://docs.zizmor.sh/audits/#template-injection\n\nAvoid potential sources of code injection via template expansion in\nci-unix-static-av2.yml.\nSee https://docs.zizmor.sh/audits/#template-injection\n\nSimplify disabling mechanism in ci-unix-static-av2.yml.\nSee https://docs.zizmor.sh/audits/#obfuscation"
    },
    {
      "commit": "32393ae1eefc568feed206d126434cd0c28893fd",
      "tree": "f496c6ab81c8ef99d06c694b3348d67c686f9b9a",
      "parents": [
        "3f4212ffcfaf0eba9897781672d8e65bbb98cec3"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Mon Jun 22 11:29:29 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 11:29:29 2026 -0700"
      },
      "message": "Use valid xmp_data buffer in JpegTest.TooLargeXMP\n\nActually allocate a too large xmp_data buffer. Make sure the\navifJPEGParseGainMapXMP() call would succeed if the size \u003e INT_MAX check\nwere removed.\n\nThe original JpegTest.TooLargeXMP test is renamed\nJpegTest.TooLargeXMPFake.\n\nA follow-up to PR https://github.com/AOMediaCodec/libavif/pull/3249."
    },
    {
      "commit": "3f4212ffcfaf0eba9897781672d8e65bbb98cec3",
      "tree": "c0a369897f9ca1b2b032d85861178245958821b2",
      "parents": [
        "eb565694d376eabcf5bf452bc786e9839b25ed98"
      ],
      "author": {
        "name": "Maryla Ustarroz-Calonge",
        "email": "maryla@google.com",
        "time": "Fri Jun 19 10:51:35 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 19 10:51:35 2026 +0200"
      },
      "message": "avifgainmaputil: add --ignore-alpha flag to discard alpha channel (#3273)"
    },
    {
      "commit": "eb565694d376eabcf5bf452bc786e9839b25ed98",
      "tree": "78b3492c92e28d005988cba023e643d9274782a2",
      "parents": [
        "9d654e391a75268869e488831099a5f86cfb2fb9"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Thu Jun 18 08:32:09 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 18 08:32:09 2026 -0700"
      },
      "message": "avifImageYUVAnyToRGBAnySlow: Fix integer overflows\n\nFix the integer overflows in avifImageYUVAnyToRGBAnySlow() by declaring\na few local variables as size_t or ptrdiff_t.\n\nDeclare yuvChannelBytes, yRowBytes, uRowBytes, vRowBytes, aRowBytes as\nsize_t. These variables are multiplied by index variables of the\nuint32_t type. In addition, yuvChannelBytes, uRowBytes, and vRowBytes\nare cast to ptrdiff_t or multiplied by -1.\n\nDeclare uAdjCol, vAdjCol, uAdjRow, vAdjRow as ptrdiff_t. These variables\nmay store positive or negative values, and are added to a pointer.\n\nAlso remove two pairs of unnecessary parentheses.\n\nAcknowledgments: This pull request replaces the following pull requests\nthat attempt to fix this issue:\n  - https://github.com/AOMediaCodec/libavif/pull/3063 by rootvector2\n  - https://github.com/AOMediaCodec/libavif/pull/3202 by rootvector2\n  - https://github.com/AOMediaCodec/libavif/pull/3213 by metsw24-max\n  - https://github.com/AOMediaCodec/libavif/pull/3260 by MXguru1"
    },
    {
      "commit": "9d654e391a75268869e488831099a5f86cfb2fb9",
      "tree": "f21e49ef573630ffd214791f622e1be0809ad9c8",
      "parents": [
        "94fcbb3fbc186cab1d7419c6a8559a0d7e1dc90d"
      ],
      "author": {
        "name": "Maryla Ustarroz-Calonge",
        "email": "maryla@google.com",
        "time": "Thu Jun 18 13:07:42 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 18 13:07:42 2026 +0200"
      },
      "message": "Fix printed gain map size in avifenc/avifgainmaputil when using a grid. (#3270)\n\nFollow up of #3264\nFixes #3261"
    },
    {
      "commit": "94fcbb3fbc186cab1d7419c6a8559a0d7e1dc90d",
      "tree": "84038e634d8529eada8f1fc50263561f6f69d6df",
      "parents": [
        "27a60c729c061c93015f5a27efc2619a0693bc36"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Wed Jun 17 12:46:28 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 12:46:28 2026 -0700"
      },
      "message": "Add a changelog entry for PR #3266"
    },
    {
      "commit": "27a60c729c061c93015f5a27efc2619a0693bc36",
      "tree": "90685515a45ce988e15088e38858aaee4f2a1e4b",
      "parents": [
        "56bb94e9ed63f2358a43dc66ef1b49db539b86a1"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Wed Jun 17 12:45:09 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 12:45:09 2026 -0700"
      },
      "message": "Cite the svt-av1 vcpkg bug report instead"
    },
    {
      "commit": "56bb94e9ed63f2358a43dc66ef1b49db539b86a1",
      "tree": "ccc82e568376a9baa9ba0a3b3982d5c13ecff240",
      "parents": [
        "cbeb4d85764a4fda29ab8eebcb455ee31390aa98"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Wed Jun 17 11:20:30 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 11:20:30 2026 -0700"
      },
      "message": "Link with -lm when NOT WIN32 AND NOT APPLE\n\nChange the condition to link with the math library (-lm) to\nif(NOT WIN32 AND NOT APPLE). This condition has worked well in libaom.\n\nAddress the -l_aom_dep_lib_m-NOTFOUND part of\nissue https://github.com/AOMediaCodec/libavif/issues/3263."
    },
    {
      "commit": "cbeb4d85764a4fda29ab8eebcb455ee31390aa98",
      "tree": "4e8c3af4efa90ac6f6315260427a667df07df9fc",
      "parents": [
        "fc87af9dca6923d1b73167604047a1014fc2df6b"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Wed Jun 17 09:11:02 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 09:11:02 2026 -0700"
      },
      "message": "Use windows-2022 until issue #3255 is fixed\n\nUse windows-2022 instead of windows-latest until\nhttps://github.com/AOMediaCodec/libavif/issues/3255 is fixed.\n\nwindows-latest points to windows-2025 right now, which is being updated\nto Visual Studio 2026. Visual Studio 2026 version \u003e\u003d 19.50 has an AVX2\nintrinsics inlining bug, described at\nhttps://gitlab.com/AOMediaCodec/SVT-AV1/-/work_items/2322#note_3455144085."
    },
    {
      "commit": "fc87af9dca6923d1b73167604047a1014fc2df6b",
      "tree": "4050b355ef447324547b9c879a4e7dad8ec6ce27",
      "parents": [
        "64751ae750824470f61a2b2a3ab73600b00e3db7"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Jun 17 16:39:43 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 16:39:43 2026 +0200"
      },
      "message": "Patch SVT-AV1 to avoid corrupted files with MSVC (#3257)"
    },
    {
      "commit": "64751ae750824470f61a2b2a3ab73600b00e3db7",
      "tree": "c83f3cad3d418ef6edccd38313bc0fa38297d414",
      "parents": [
        "6048f5c9e0ff74124c219d032997e34e92c7d343"
      ],
      "author": {
        "name": "Maryla Ustarroz-Calonge",
        "email": "maryla@google.com",
        "time": "Wed Jun 17 16:06:22 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 16:06:22 2026 +0200"
      },
      "message": "avifgainmaputil: fix incorrectly printed resolution (#3264)"
    },
    {
      "commit": "6048f5c9e0ff74124c219d032997e34e92c7d343",
      "tree": "39c71a18f53f86ba3f6187903ae522b8a21d2c59",
      "parents": [
        "0e73429877ced7d2b1cd943c8398fa82b9311ddf"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Tue Jun 16 14:56:25 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 14:56:25 2026 -0700"
      },
      "message": "Compare matrix.generator with \u0027-G Ninja\u0027\n\nThe new matrix.generator value is \"-G Ninja\", so matrix.generator should\nbe compared with \u0027-G Ninja\u0027 instead of \u0027Ninja\u0027."
    },
    {
      "commit": "0e73429877ced7d2b1cd943c8398fa82b9311ddf",
      "tree": "4a97d1b569d0ae44acd9871c1de19ec2dd50dd6d",
      "parents": [
        "da84da9070d1f8b1ee3c0e14eb846ca8e8681eb9"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Jun 15 14:30:44 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 14:30:44 2026 +0200"
      },
      "message": "Remove explicit VS version in Windows CI (#3254)\n\nRely on CMake\u0027s default generator."
    },
    {
      "commit": "da84da9070d1f8b1ee3c0e14eb846ca8e8681eb9",
      "tree": "a87154c7e4ca5aca6baf9fff076f9a79cc884fd3",
      "parents": [
        "e14848ef32b064b980eac1a6d540effec2839ba7"
      ],
      "author": {
        "name": "XananasX",
        "email": "cihbank069@gmail.com",
        "time": "Mon Jun 15 08:51:05 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 09:51:05 2026 +0200"
      },
      "message": "ci: pin actions to full commit SHAs in ci-format-check and ci-mingw (#3253)\n\nMutable tag references can be silently re-pointed to different commits.\nPin to full SHA (tag kept as comment):\n\n  neg-c/cmake-format-action:\n    @v0.1.3 -\u003e @ba83660ac46d64c12ca96f39478dcde7680a52bf\n  msys2/setup-msys2:\n    @v2 -\u003e @66cd2cce69caa17b53920067426061ca1de3a884"
    },
    {
      "commit": "e14848ef32b064b980eac1a6d540effec2839ba7",
      "tree": "3f31e0abd6dacf1c24656d45c537ea276e69526b",
      "parents": [
        "0b47c4002a41eda3dbe3a05187449363b56eae4d"
      ],
      "author": {
        "name": "alb3e3",
        "email": "74142887+Alb3e3@users.noreply.github.com",
        "time": "Mon Jun 15 08:25:07 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 08:25:07 2026 +0200"
      },
      "message": "Replace archived release asset upload action (#3248)"
    },
    {
      "commit": "0b47c4002a41eda3dbe3a05187449363b56eae4d",
      "tree": "555050d1ce052f555f244eac85e85a06ef6f2873",
      "parents": [
        "7f7fa383834f8d8a56ca130f3218ca7735f3ea1f"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Fri Jun 12 07:07:29 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 12 07:07:29 2026 -0700"
      },
      "message": "Avoid const cast of avifJPEGFindXMLNodeByName rv\n\nChange avifJPEGFindXMLNodeByName() to return a non-const xmlNode * so\nthat we don\u0027t need apply a const cast to its return value.\n\nAlso fix an incorrect error message (we are parsing an extended XMP\nsegment, not a standard XMP segment)."
    },
    {
      "commit": "7f7fa383834f8d8a56ca130f3218ca7735f3ea1f",
      "tree": "b4cd54d8840b225d0853169aa76100c34b4d50a1",
      "parents": [
        "36ccfc14cb5329ff1fae082a77a729ed34028dc0"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Fri Jun 12 06:42:27 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 12 06:42:27 2026 -0700"
      },
      "message": "Add changelog entry for #3247 (Copy XMP/Exif ...)"
    },
    {
      "commit": "36ccfc14cb5329ff1fae082a77a729ed34028dc0",
      "tree": "be59f05e72f5d3d334801f47fca0824006202d8b",
      "parents": [
        "121d6d13cdc2552a414b570830090fdc7138880d"
      ],
      "author": {
        "name": "alb3e3",
        "email": "74142887+Alb3e3@users.noreply.github.com",
        "time": "Thu Jun 11 14:28:03 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 14:28:03 2026 +0200"
      },
      "message": "Guard JPEG XMP parsing sizes (#3249)"
    },
    {
      "commit": "121d6d13cdc2552a414b570830090fdc7138880d",
      "tree": "030a1ab0ad38b918ae6c9ab239931db67b4737d3",
      "parents": [
        "253f0d0f04e771dd94b37682a211b10a9cfe702e"
      ],
      "author": {
        "name": "Maryla Ustarroz-Calonge",
        "email": "maryla@google.com",
        "time": "Thu Jun 11 11:44:17 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 11:44:17 2026 +0200"
      },
      "message": "Copy XMP/Exif in `avifgainmaputil tonemap` (#3247)\n\nFixes #3232"
    },
    {
      "commit": "253f0d0f04e771dd94b37682a211b10a9cfe702e",
      "tree": "dcc7296297e5d489587e4dfb3f099f1d6502f550",
      "parents": [
        "96ec013de9c565d0fa474139ca25fec001145392"
      ],
      "author": {
        "name": "Javid Khan",
        "email": "dxbjavid@gmail.com",
        "time": "Mon Jun 08 15:05:38 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 11:35:38 2026 +0200"
      },
      "message": "cast to unsigned char before ctype calls in image readers (#3245)"
    },
    {
      "commit": "96ec013de9c565d0fa474139ca25fec001145392",
      "tree": "ff636bec0cc47f756a62f29eee31620dd76b20d4",
      "parents": [
        "76fb86e4d569863da8df63e7327168cc23f35709"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Fri Jun 05 07:15:10 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 07:15:10 2026 -0700"
      },
      "message": "Explain why avifImageCopy() disallows self copy"
    },
    {
      "commit": "76fb86e4d569863da8df63e7327168cc23f35709",
      "tree": "e4a9fca2c4415e722ea0d0909780198f7f71cafa",
      "parents": [
        "ed2839513419ead71dfdfe44faaf129d8a705fd3"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Thu Jun 04 11:43:12 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 04 11:43:12 2026 -0700"
      },
      "message": "Relax SampleTransformZeroInputItemsRejected error\n\nIn the SampleTransformZeroInputItemsRejected test, do not require the\nerror code of avifDecoderReadMemory() be AVIF_RESULT_BMFF_PARSE_FAILED.\nThis allows the implementation to return a different error code such as\nAVIF_RESULT_DECODE_SAMPLE_TRANSFORM_FAILED.\n\nNote: Without this change, the next statement,\n  EXPECT_NE(result, AVIF_RESULT_INTERNAL_ERROR);\nis redundant."
    },
    {
      "commit": "ed2839513419ead71dfdfe44faaf129d8a705fd3",
      "tree": "cd56384a679b4999ee8ca441214fc14268402884",
      "parents": [
        "383d8c8087c50be7b5a6ad5152e3bbc09bf1e9e0"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Wed Jun 03 21:21:00 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 21:21:00 2026 -0700"
      },
      "message": "codec_libgav1.c: Remove #include \u003cstring.h\u003e\n\nAfter commit c64ea94, codec_libgav1.c no longer calls any function\ndeclared in \u003cstring.h\u003e. This can be verified by searching for \"str\" and\n\"mem\" in this file. Include \u003cstddef.h\u003e instead (for NULL)."
    },
    {
      "commit": "383d8c8087c50be7b5a6ad5152e3bbc09bf1e9e0",
      "tree": "22244b20386014e870619018b39fd2175fafda7a",
      "parents": [
        "a660226935e62194c4129d57fd352d611969806b"
      ],
      "author": {
        "name": "jmestwa-coder",
        "email": "jmestwa@gmail.com",
        "time": "Wed Jun 03 14:06:31 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 03 10:36:31 2026 +0200"
      },
      "message": "Reject \u0027sato\u0027 items with no input image items (#3237)"
    },
    {
      "commit": "a660226935e62194c4129d57fd352d611969806b",
      "tree": "8354be0b086e74dc5648c44e46fa30b4d7bf6446",
      "parents": [
        "67f7589ee7a72e8ceca420607566d3c1727b81ed"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Tue Jun 02 19:16:14 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 19:16:14 2026 -0700"
      },
      "message": "Disallow dstImage \u003d\u003d srcImage\n\nDisallow dstImage \u003d\u003d srcImage in avifImageCopy() and\navifImageSetViewRect()."
    },
    {
      "commit": "67f7589ee7a72e8ceca420607566d3c1727b81ed",
      "tree": "8a60472ab9c2199e4bc17c305d8cc6b49051556e",
      "parents": [
        "c64ea9468ddf5f0b3cdf14d07da3e200c8c208b5"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Tue Jun 02 13:18:06 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 13:18:06 2026 -0700"
      },
      "message": "Max frame dims apply to AV2 in avifValidateGrid()\n\nAV2 has the same maximum frame width and height as AV1."
    },
    {
      "commit": "c64ea9468ddf5f0b3cdf14d07da3e200c8c208b5",
      "tree": "6cb7083ee89d850e58b8bb9616918e8547a676d3",
      "parents": [
        "27ec163acc16da9cb1294161904f85a985dc5ce3"
      ],
      "author": {
        "name": "metsw24-max",
        "email": "metsw24@gmail.com",
        "time": "Tue Jun 02 02:49:12 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 14:19:12 2026 -0700"
      },
      "message": "Add avifCalloc() and harden allocation call sites\n\nIntroduce avifCalloc() as a centralized overflow-checked,\nzero-initializing allocation helper and convert existing open-coded\nallocation patterns to use it.\n\nThis change replaces repeated patterns of:\n\n    p \u003d avifAlloc(...);\n    memset(p, 0, ...);\n    \nwith a single reusable helper that performs allocation arithmetic\nvalidation and zero-initialization in one place."
    },
    {
      "commit": "27ec163acc16da9cb1294161904f85a985dc5ce3",
      "tree": "e4c32ae8c86f8eab6a8ebf076c7fb9fc30cff4ca",
      "parents": [
        "d8b4e042cde136995909a7c5753d5f2910772248"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jun 01 11:05:15 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 11:05:15 2026 -0700"
      },
      "message": "Bump the github-actions group across 2 directories with 2 updates\n\nBumps the github-actions group with 1 update in the /.github/actions/setup-windows directory: [johnwason/vcpkg-action](https://github.com/johnwason/vcpkg-action).\nBumps the github-actions group with 1 update in the /.github/workflows directory: [github/codeql-action](https://github.com/github/codeql-action).\n\n\nUpdates `johnwason/vcpkg-action` from 7.0.1 to 8.0.0\n- [Release notes](https://github.com/johnwason/vcpkg-action/releases)\n- [Commits](https://github.com/johnwason/vcpkg-action/compare/caa1c94fbb94d8b023a0cc93edf10cd3791349a7...04c68c847bf5196ecaa72331ecf51208583916ef)\n\nUpdates `github/codeql-action` from 4.35.2 to 4.36.0\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/github/codeql-action/compare/95e58e9a2cdfd71adc6e0353d5c52f41a045d225...7211b7c8077ea37d8641b6271f6a365a22a5fbfa)\n\n---\nupdated-dependencies:\n- dependency-name: johnwason/vcpkg-action\n  dependency-version: 8.0.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n  dependency-group: github-actions\n- dependency-name: github/codeql-action\n  dependency-version: 4.36.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n  dependency-group: github-actions\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "d8b4e042cde136995909a7c5753d5f2910772248",
      "tree": "e377626a299f8f5a1ddc267c8425f7d351df3ce5",
      "parents": [
        "693855b664244c0dfd1992ab301fad7b5aa1e085"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Thu May 28 23:44:26 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 23:44:26 2026 -0700"
      },
      "message": "Update to AVM v1.0.0"
    },
    {
      "commit": "693855b664244c0dfd1992ab301fad7b5aa1e085",
      "tree": "c49b5bdef3c1d2af4a7220560e029b8df93efe41",
      "parents": [
        "50c9345a4c0c1ea6682fd705f8f59bce25301336"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Thu May 28 13:40:09 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 13:40:09 2026 -0700"
      },
      "message": "avifenc: add --ignore-alpha flag to discard alpha\n\nAdd --ignore-alpha flag to avifenc to discard alpha channel on encode.\n\nHave avifInputReadImage() propagate the ignoreAlpha parameter further\ndown the call chain all the way to the leaf functions.\n\nCo-authored-by: enyetsuen \u003c175347006+enyetsuen@users.noreply.github.com\u003e"
    },
    {
      "commit": "50c9345a4c0c1ea6682fd705f8f59bce25301336",
      "tree": "61d7dc4e7c2676ba1be71c71ff718e268f7b7976",
      "parents": [
        "c5240fc79fe5c2407e10afd35f5505ef6333ea49"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Tue May 26 16:05:21 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 16:05:21 2026 -0700"
      },
      "message": "Re-enable AVIF_VERSION_DEVEL"
    },
    {
      "commit": "c5240fc79fe5c2407e10afd35f5505ef6333ea49",
      "tree": "b2663cbc9ed4554942f9c5e54f6ffd4ec6a8d608",
      "parents": [
        "267f924c90938f81b97458754c9c8e36d9c224ee"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Tue May 26 15:29:56 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 15:29:56 2026 -0700"
      },
      "message": "v1.4.2"
    },
    {
      "commit": "267f924c90938f81b97458754c9c8e36d9c224ee",
      "tree": "64774f132f60961c5ea0197e43edca1e06f64495",
      "parents": [
        "196cf824aa891b83abe7fc8772c0dd6711d9a0c2"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Tue May 26 09:32:34 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 09:32:34 2026 -0700"
      },
      "message": "Bump libyuv to 644251f25\n\nUsed on the Chrome M149 branch."
    },
    {
      "commit": "196cf824aa891b83abe7fc8772c0dd6711d9a0c2",
      "tree": "4133fd56a24b849f5660617d1dfb5b39119e2044",
      "parents": [
        "7d67150badf57c2389877af71461bf889041090c"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Tue May 26 08:52:58 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 08:52:58 2026 -0700"
      },
      "message": "Bump libxml2 to v2.15.3"
    },
    {
      "commit": "7d67150badf57c2389877af71461bf889041090c",
      "tree": "990b372d15d867419d4b6faa705c704937fb7325",
      "parents": [
        "6a3615c508fcfd69772c4ce4775d01ddfe9b5e6d"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Fri May 22 14:13:05 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 14:13:05 2026 -0700"
      },
      "message": "Bump libjpeg-turbo to 3.1.4.1"
    },
    {
      "commit": "6a3615c508fcfd69772c4ce4775d01ddfe9b5e6d",
      "tree": "97206cb5ee8d924b14ba8ebcae2ccab9cd57fe2c",
      "parents": [
        "b28a5b1d871e7dcc75d2f5da9bcc4090bf4c2457"
      ],
      "author": {
        "name": "metsw24-max",
        "email": "metsw24@gmail.com",
        "time": "Sat May 23 02:12:06 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 13:42:06 2026 -0700"
      },
      "message": "Use std::array for pixel buffers in avifrgbtest\n\nReplaces raw `float[4]` pixel buffers in tests/gtest/avifrgbtest.cc with\n`std::array\u003cfloat, 4\u003e`, passing `.data()` to `avifSetRGBAPixel` and\n`avifGetRGBAPixel`. This is a small code-quality cleanup that stands on\nits own; it was split out of the `-Wunsafe-buffer-usage` opt-in PR at\nthe reviewer\u0027s request."
    },
    {
      "commit": "b28a5b1d871e7dcc75d2f5da9bcc4090bf4c2457",
      "tree": "629fc1de64bfeb8969e33b419825d7fe9e67d514",
      "parents": [
        "9bf3dd48dcd947c9946aa68d30c1c4b9c642f3dc"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Fri May 22 13:27:52 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 13:27:52 2026 -0700"
      },
      "message": "Bump libpng to 1.6.58"
    },
    {
      "commit": "9bf3dd48dcd947c9946aa68d30c1c4b9c642f3dc",
      "tree": "6cb0e1a3300e1fba68d7aed18d6cffbc763b2405",
      "parents": [
        "eb6e0e6c9017935bd8ac54b01b55a4c330f5e976"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Fri May 22 13:02:21 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 13:02:21 2026 -0700"
      },
      "message": "Update to libaom v3.14.1"
    },
    {
      "commit": "eb6e0e6c9017935bd8ac54b01b55a4c330f5e976",
      "tree": "7f0d7f43ab99f4d74c15c6278b2c76336a2e968d",
      "parents": [
        "3a63fd99d00109a5e0732b9cdee92277dcf09953"
      ],
      "author": {
        "name": "Maryla Ustarroz-Calonge",
        "email": "maryla@google.com",
        "time": "Fri May 22 16:23:34 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 16:23:34 2026 +0200"
      },
      "message": "Fix bug in avifToLinearIEC61966 (#3218)"
    },
    {
      "commit": "3a63fd99d00109a5e0732b9cdee92277dcf09953",
      "tree": "2c512ace5472b05c07a30f532c6679fcb1fbfb22",
      "parents": [
        "729927c8d6c27159f5a97c41cf218d8244dc8897"
      ],
      "author": {
        "name": "metsw24-max",
        "email": "metsw24@gmail.com",
        "time": "Thu May 21 23:20:09 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 21 10:50:09 2026 -0700"
      },
      "message": "Replace strcpy/strcat with memcpy in aviftest.c"
    },
    {
      "commit": "729927c8d6c27159f5a97c41cf218d8244dc8897",
      "tree": "d4ca8f9e00e4193436355b56251040681cf59511",
      "parents": [
        "1eb52718e253cf542452b47bf3042ab79594736e"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Wed May 20 14:31:24 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 14:31:24 2026 -0700"
      },
      "message": "Switch to AVM\u0027s new repository on GitHub"
    },
    {
      "commit": "1eb52718e253cf542452b47bf3042ab79594736e",
      "tree": "f44c7d0894d4b5191e7da3645b592e75bb60f383",
      "parents": [
        "b76fe84462a20023c6c9990f592e364bbd37f83a"
      ],
      "author": {
        "name": "kjg0724",
        "email": "63202356+kjg0724@users.noreply.github.com",
        "time": "Thu May 21 05:53:58 2026 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 13:53:58 2026 -0700"
      },
      "message": "avifenc: refer to standard input in error message\n\nRefer to \"standard input\" in the stdin Y4M error message. The outer\nerror already says \"from standard input\"; make the hint consistent.\n\nRefs #3194"
    },
    {
      "commit": "b76fe84462a20023c6c9990f592e364bbd37f83a",
      "tree": "f3d497032035a20b0e1c2b0f4ee164288ae4fb9d",
      "parents": [
        "80f489a010fe84f6e3f825105e232e07346bb426"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Wed May 20 11:04:48 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 11:04:48 2026 -0700"
      },
      "message": "Change avifRWStreamFinishBox to return avifResult\n\nFollow up on PR #3207. Allow error handling."
    },
    {
      "commit": "80f489a010fe84f6e3f825105e232e07346bb426",
      "tree": "03101c583b6138aff02ceb19a88cdd020596d3cc",
      "parents": [
        "a854856d05ccd05db91ee49e3c54b4e5a6d70582"
      ],
      "author": {
        "name": "metsw24-max",
        "email": "metsw24@gmail.com",
        "time": "Wed May 20 16:16:30 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 12:46:30 2026 +0200"
      },
      "message": "Make avifAlloc(0) deterministic and fix RWData shrink-to-zero handling (#3212)"
    },
    {
      "commit": "a854856d05ccd05db91ee49e3c54b4e5a6d70582",
      "tree": "aceddfa9bf07707224ae4b317b10497d8056aa9a",
      "parents": [
        "ed4f11dcf6e684025f0a2225a48099ef213fe7c2"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Tue May 19 08:42:38 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 08:42:38 2026 -0700"
      },
      "message": "Check null return value from avifImageCreateEmpty\n\nAudit all calls to avifImageCreateEmpty() and avifImageCreate() in the\nlibavif source tree (except the tests) and make sure that the callers\ncheck for a null return value.\n\nFix nits in two error messages."
    },
    {
      "commit": "ed4f11dcf6e684025f0a2225a48099ef213fe7c2",
      "tree": "a694cb338e9c8e25e4eb0bf4875defd4ae243ae4",
      "parents": [
        "4e3fed82b35a4711bedaf8b58485fc07714ee746"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Tue May 19 07:55:21 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 07:55:21 2026 -0700"
      },
      "message": "Detect invalid box size in avifRWStreamFinishBox()\n\nUnfortunately avifRWStreamFinishBox() returns void and there are a lot\nof avifRWStreamFinishBox() calls, so have avifRWStreamFinishBox() call\nabort() on an invalid box size for now."
    },
    {
      "commit": "4e3fed82b35a4711bedaf8b58485fc07714ee746",
      "tree": "f69fa171609d9b0d54aad0e62b62fae342627532",
      "parents": [
        "786926e4b151886c3a4ef3f897e4d143f1bd7c6f"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Tue May 19 07:49:07 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 07:49:07 2026 -0700"
      },
      "message": "Document the marker parameter of box writing funcs"
    },
    {
      "commit": "786926e4b151886c3a4ef3f897e4d143f1bd7c6f",
      "tree": "37fa965338e11a2c01e9887657e91fd2f68e1eaa",
      "parents": [
        "15c8b002222ea82466eb42a12b809e930704efa4"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Mon May 18 11:01:39 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 11:01:39 2026 -0700"
      },
      "message": "avifenc: Follow up on PR #3179\n\nClarify \"bit depth is retained and must match if specified\".\n\nChange a semicolon (;) to a comma (,) to make it clear that\n\"Dextension is unsupported\" is part of the y4m case."
    },
    {
      "commit": "15c8b002222ea82466eb42a12b809e930704efa4",
      "tree": "be445afbd4d7b40da20ff933d425bc83e42a9976",
      "parents": [
        "96e91c48e26b1dc232abb47cc46073cae2606ea1"
      ],
      "author": {
        "name": "Dexter.k",
        "email": "164054284+rootvector2@users.noreply.github.com",
        "time": "Mon May 18 23:07:53 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 10:37:53 2026 -0700"
      },
      "message": "gainmap: check avifImageCreateEmpty() result\n\navifRGBImageApplyGainMap() calls avifImageCreateEmpty() to back the\nrescaledGainMap when the gain map image\u0027s dimensions differ from the\nbase image\u0027s, but does not check the return value. The next line\ncalls avifImageSetViewRect(rescaledGainMap, ...), which dereferences\nthe destination image via avifImageFreePlanes() before any rect\nvalidation, so a NULL return from avifImageCreateEmpty() crashes the\ncaller under memory pressure.\n\nThis is the same pattern fixed for avifImageCopy() in PR #3201.\n\nBail to the existing cleanup label with AVIF_RESULT_OUT_OF_MEMORY\nwhen the allocation fails."
    },
    {
      "commit": "96e91c48e26b1dc232abb47cc46073cae2606ea1",
      "tree": "16dbc1989751a1716e937573661a8f9cf8d2973e",
      "parents": [
        "4368f146309dd6a5b05657df646a97d2f7032903"
      ],
      "author": {
        "name": "Dexter.k",
        "email": "164054284+rootvector2@users.noreply.github.com",
        "time": "Mon May 18 21:57:08 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 09:27:08 2026 -0700"
      },
      "message": "avifImageCopy: check avifImageCreateEmpty() result\n\nWhen the destination image has no gain map image yet but the source\ndoes, avifImageCopy() called avifImageCreateEmpty() and passed the\nresult to a recursive avifImageCopy() without checking for allocation\nfailure. Under out-of-memory conditions this dereferenced a NULL pointer\nin avifImageFreePlanes() at the start of the recursive call.\n\nAdd the missing AVIF_CHECKERR, matching the existing pattern used for\nthe avifGainMapCreate() allocation a few lines above."
    },
    {
      "commit": "4368f146309dd6a5b05657df646a97d2f7032903",
      "tree": "cb2d3d4441c4067b449d8c9328daa6c0b1c4a156",
      "parents": [
        "3c66271c78f5bbf8228a62a344a33eace1b9f764"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Mon May 18 06:11:22 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 15:11:22 2026 +0200"
      },
      "message": "Change \"y4m or stdin\" to \"y4m\" in avifenc help msg (#3197)\n\nA follow-up to PR #2710."
    },
    {
      "commit": "3c66271c78f5bbf8228a62a344a33eace1b9f764",
      "tree": "e1b515ebcb57b47c65352c6f35d1e1d4a80c4950",
      "parents": [
        "74bd32ef873024213b37f19a94f30d7b155f2514"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Fri May 15 13:25:44 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 15 13:25:44 2026 -0700"
      },
      "message": "Print diag msg if AOMD_SET_FRAME_SIZE_LIMIT fails"
    },
    {
      "commit": "74bd32ef873024213b37f19a94f30d7b155f2514",
      "tree": "70211f55ae774b2ad45c68e2c8e4e61fa3381a31",
      "parents": [
        "4b817bb98ec9e4be299aa28e0d7c29456a0f6b93"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Fri May 15 11:57:19 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 15 11:57:19 2026 -0700"
      },
      "message": "Update to libaom v3.14.0\n\nDelete the AomTuneMetricTest.TuneIqOnlySupportsAllIntra test (added in\nPR #2936) because tune IQ was extended to inter-frame encoding modes\n(good-quality and realtime) in libaom v3.14.0:\nhttps://aomedia-review.googlesource.com/207681"
    },
    {
      "commit": "4b817bb98ec9e4be299aa28e0d7c29456a0f6b93",
      "tree": "8d229fa1f7bc31ce65d76dbeb61a58d22b0ab038",
      "parents": [
        "41ee8abe2613de364559f73011683b4d97227a85"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Wed May 13 15:30:18 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 15:30:18 2026 -0700"
      },
      "message": "Set aomVersion_3_14_0 to the correct value\n\nThe libaom v3.14.0 release is imminent. It is safe to set\naomVersion_3_14_0 to the correct value now."
    },
    {
      "commit": "41ee8abe2613de364559f73011683b4d97227a85",
      "tree": "fd044f91c233c4a37e29ceabc9f71fc9d5e222a6",
      "parents": [
        "3e9371f563a6bd96440b0e3d425afdc1f91c7f45"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Wed May 13 10:50:39 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 10:50:39 2026 -0700"
      },
      "message": "Use libaom AOMD_SET_FRAME_SIZE_LIMIT if available\n\nBug: https://aomedia.g-issues.chromium.org/issues/485932002"
    },
    {
      "commit": "3e9371f563a6bd96440b0e3d425afdc1f91c7f45",
      "tree": "8e62ee3cd580bd462b66658915464abb9834f99f",
      "parents": [
        "257b1e45f979491d905786d80691ba33a7597290"
      ],
      "author": {
        "name": "Anthony Hurtado",
        "email": "amhurtado@protonmail.com",
        "time": "Wed May 13 06:07:40 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 13 13:07:40 2026 +0200"
      },
      "message": "Fix NaN bypass of AVIF_CLAMP in gain map pixel clamping (#3189)\n\nApply path (the two sites at lines 156 and 277): when `baseLinear + baseOffset` is zero (e.g., a black pixel with `baseOffset \u003d {0, 1}`), and the gain map log2 value is large enough for `exp2f()` to overflow to +Inf, the multiplication `0.0f * +Inf` evaluates to NaN per IEEE 754. The NaN then passes through `linearToGamma()` and `AVIF_CLAMP()` unmodified, since the macro\u0027s ternary comparisons all return false for NaN operands.\n\nA similar NaN path exists in the compute path (line 764): if `base + baseOffset[c]` is near-zero after color space conversion, the ratio at line 695 overflows to +Inf. `AVIF_MAX(ratio, kEpsilon)` only lower-bounds, so +Inf passes through into `gainMapF`. After `avifFindMinMaxWithoutOutliers` picks up +Inf as the channel max, the normalization `(+Inf - min) / +Inf` evaluates to NaN (indeterminate form).\n\nThe `fminf`/`fmaxf` fix is intentionally a safety net at the output boundary — it ensures NaN can\u0027t reach `avifSetRGBAPixel()` regardless of which upstream path produced it. If you\u0027d prefer a root-cause fix as well (e.g., clamping the ratio or guarding `exp2f` overflow), I\u0027m happy to add that.\n\nCo-authored-by: Claude Opus 4.6 \u003cnoreply@anthropic.com\u003e"
    },
    {
      "commit": "257b1e45f979491d905786d80691ba33a7597290",
      "tree": "5a7f54bb9496c59f4ac8524d1e227a7f3c6b4856",
      "parents": [
        "ee0ce4ea86b4240c35d96d05a685ed00146dba56"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Wed May 06 14:17:45 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 06 14:17:45 2026 -0700"
      },
      "message": "Update to AVM research-v15.0.0 anchor"
    },
    {
      "commit": "ee0ce4ea86b4240c35d96d05a685ed00146dba56",
      "tree": "86f3f30cf8a4040ccd14988f1019023f176212b6",
      "parents": [
        "9bd9e4dacd933f1e30d4cefe1ff88262338367ea"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Tue May 05 15:15:31 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 05 15:15:31 2026 -0700"
      },
      "message": "Add pull request #3179 to CHANGELOG.md"
    },
    {
      "commit": "9bd9e4dacd933f1e30d4cefe1ff88262338367ea",
      "tree": "49e2fba2c338e63dfe00eb633604221d1ebf4cbe",
      "parents": [
        "f17110dac426a7dd046a34b99276e64d9fb73c28"
      ],
      "author": {
        "name": "Jeongkeun Kim",
        "email": "variety0724@gmail.com",
        "time": "Mon Apr 27 17:29:57 2026 +0900"
      },
      "committer": {
        "name": "Vignesh Venkatasubramanian",
        "email": "vigneshvg@users.noreply.github.com",
        "time": "Tue May 05 09:46:07 2026 -0700"
      },
      "message": "avifenc: reject mismatched --depth for Y4M input\n"
    },
    {
      "commit": "f17110dac426a7dd046a34b99276e64d9fb73c28",
      "tree": "e49b2c32eec9f35b64bd4c1288b1f08bc23dc467",
      "parents": [
        "ee88f984f540e7fb67ae6dc2212565b6a3d82b84"
      ],
      "author": {
        "name": "uwezkhan",
        "email": "114483941+uwezkhan@users.noreply.github.com",
        "time": "Sat May 02 22:48:44 2026 +0530"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 02 10:18:44 2026 -0700"
      },
      "message": "Use size_t arithmetic in pixel offset calculations\n\nDeclare indexes i, j, uvI, uvJ as size_t so that multiplications with\nthem are performed in size_t."
    },
    {
      "commit": "ee88f984f540e7fb67ae6dc2212565b6a3d82b84",
      "tree": "6aa5c2ff2361dc4447dc765cc1511bec226fd98a",
      "parents": [
        "a1fa5df53a1e9f0a13de04260d3379cb6988e617"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Fri May 01 14:02:17 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 14:02:17 2026 -0700"
      },
      "message": "Delete the unused variable i_cell\n\nGCC 16.1.0 in MinGW warns that the variable \u0027i_cell\u0027 set but not used."
    },
    {
      "commit": "a1fa5df53a1e9f0a13de04260d3379cb6988e617",
      "tree": "c01f89760dc85249764b8e12113613280cba4721",
      "parents": [
        "9e918bbc82c0d72e1c56296287ac42b0c8f54a70"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri May 01 09:56:22 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 09:56:22 2026 -0700"
      },
      "message": "Bump the github-actions group across 2 directories with 4 updates\n\nBumps the github-actions group with 1 update in the /.github/actions/cache directory: [actions/cache](https://github.com/actions/cache).\nBumps the github-actions group with 3 updates in the /.github/workflows directory: [android-actions/setup-android](https://github.com/android-actions/setup-android), [actions/upload-artifact](https://github.com/actions/upload-artifact) and [github/codeql-action](https://github.com/github/codeql-action).\n\n\nUpdates `actions/cache` from 5.0.4 to 5.0.5\n- [Release notes](https://github.com/actions/cache/releases)\n- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)\n- [Commits](https://github.com/actions/cache/compare/668228422ae6a00e4ad889ee87cd7109ec5666a7...27d5ce7f107fe9357f9df03efb73ab90386fccae)\n\nUpdates `android-actions/setup-android` from 4.0.0 to 4.0.1\n- [Release notes](https://github.com/android-actions/setup-android/releases)\n- [Commits](https://github.com/android-actions/setup-android/compare/651bceb6f9ca583f16b8d75b62c36ded2ae6fc9c...40fd30fb8d7440372e1316f5d1809ec01dcd3699)\n\nUpdates `actions/upload-artifact` from 7.0.0 to 7.0.1\n- [Release notes](https://github.com/actions/upload-artifact/releases)\n- [Commits](https://github.com/actions/upload-artifact/compare/bbbca2ddaa5d8feaa63e36b76fdaad77386f024f...043fb46d1a93c77aae656e7c1c64a875d1fc6a0a)\n\nUpdates `github/codeql-action` from 4.35.1 to 4.35.2\n- [Release notes](https://github.com/github/codeql-action/releases)\n- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/github/codeql-action/compare/c10b8064de6f491fea524254123dbe5e09572f13...95e58e9a2cdfd71adc6e0353d5c52f41a045d225)\n\n---\nupdated-dependencies:\n- dependency-name: actions/cache\n  dependency-version: 5.0.5\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: github-actions\n- dependency-name: android-actions/setup-android\n  dependency-version: 4.0.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: github-actions\n- dependency-name: actions/upload-artifact\n  dependency-version: 7.0.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: github-actions\n- dependency-name: github/codeql-action\n  dependency-version: 4.35.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: github-actions\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "9e918bbc82c0d72e1c56296287ac42b0c8f54a70",
      "tree": "c1d88bcc4cec2b7bed5e10e325bf5a73348da92f",
      "parents": [
        "b9d9bc17abbaaab89fd91b6912ef01f243ab03fe"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Thu Apr 30 14:12:07 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 14:12:07 2026 -0700"
      },
      "message": "Replace memcpy call with struct member assignment\n\nThe following memcpy call assigns an avifROData struct to an avifRWData\nstruct:\n\n    memcpy(\u0026item-\u003emergedExtents, \u0026offsetBuffer, sizeof(avifRWData));\n\nReplace it with assignments of the `data` and `size` fields of the\nstructs. Then, omit the assignment of the `size` field because it will\nbe immediately overwritten. Add an assertion to ensure the new value of\nthe `size` field is valid (does not exceed the original value)."
    },
    {
      "commit": "b9d9bc17abbaaab89fd91b6912ef01f243ab03fe",
      "tree": "1e7ce9d59a7e4df853c3d6c18a147da9b8b312e7",
      "parents": [
        "d9fe950c041734e6d8c034f20a7c5ae40ace7637"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Thu Apr 30 12:12:11 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 12:12:11 2026 -0700"
      },
      "message": "Update comment for avifDecoderItem::mergedExtents\n\nThe mergedExtents field of the avifDecoderItem struct is now always\nused. However, it may or may not own the buffer it points to, depending\non the value of the ownsMergedExtents field."
    },
    {
      "commit": "d9fe950c041734e6d8c034f20a7c5ae40ace7637",
      "tree": "a52bd77c0c74ffc821852e36f7b075175f16a409",
      "parents": [
        "f416fdc0e813d40b7336556847bdd6d3b3b4732d"
      ],
      "author": {
        "name": "Wan-Teh Chang",
        "email": "wtc@google.com",
        "time": "Thu Apr 30 12:10:54 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 12:10:54 2026 -0700"
      },
      "message": "Update to AVM research-v15.0.0 anchor RC1"
    }
  ],
  "next": "f416fdc0e813d40b7336556847bdd6d3b3b4732d"
}
