)]}'
{
  "log": [
    {
      "commit": "2b924defa4c2cd227540efe164067a8cc913eeba",
      "tree": "e58520acf3aca3e8ca72d5f404f59413dc190005",
      "parents": [
        "43716e9c34d3389b4882fbd1a81c04543ed04fe3"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Feb 18 14:25:23 2026 +0000"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Feb 18 06:31:11 2026 -0800"
      },
      "message": "Allow empty iref boxes\n\nUse a while loop instead of a do-while loop in C ParseIref().\nUse a while loop instead of a do-while loop in PHP parse_iref().\nThere is already a while loop in Rust parse_iref(), likely because\nthere is no do-while in Rust.\n\nSee https://aomedia.g-issues.chromium.org/issues/466109759.\n\nChange-Id: Ia400a59ee3f90211226ba431a006f8aea3241f77\n"
    },
    {
      "commit": "43716e9c34d3389b4882fbd1a81c04543ed04fe3",
      "tree": "9ffd37b78b1a8178918392f1773c7018e4352658",
      "parents": [
        "5f1a4c3164a0b4576a27b3859ee3ed99c78e315a"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Jul 08 14:43:03 2025 +0200"
      },
      "committer": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Tue Jul 08 14:46:35 2025 +0200"
      },
      "message": "Split test_api\n\nChange-Id: Idacb490de250d2f49b7c15b1a36b8de728638de6\n"
    },
    {
      "commit": "5f1a4c3164a0b4576a27b3859ee3ed99c78e315a",
      "tree": "3c154e7d0958827ba8237c29ebaf09f948721d9d",
      "parents": [
        "885bf32c0f1169e0d3799111b43d3b6a38f1ed33"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Tue Nov 26 10:13:16 2024 +0000"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Tue Nov 26 10:13:16 2024 +0000"
      },
      "message": "Update README\n\nChange-Id: I1f3638d1468b66dd3eb911de1c2c9efc288c535a\n"
    },
    {
      "commit": "885bf32c0f1169e0d3799111b43d3b6a38f1ed33",
      "tree": "357d6d0ab3f8c2670a74dbc39f40d7dd1b36c691",
      "parents": [
        "524cad472fd3afe5353959f7b0a7a05692c66450"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Jun 05 09:12:02 2024 +0000"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Jun 05 09:12:02 2024 +0000"
      },
      "message": "Add Rust implementation\n\nChange-Id: I749b335ee4f123d3adb7d9d92d7c14eb9948d90c\n"
    },
    {
      "commit": "524cad472fd3afe5353959f7b0a7a05692c66450",
      "tree": "05af30e6c1f2bb2df294877b5bd2a37c23ab0a86",
      "parents": [
        "8d8b58a3f517ef8d1794baa28ca6ae7d19f65514"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Jun 05 08:32:03 2024 +0000"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Jun 05 08:32:03 2024 +0000"
      },
      "message": "Use FreeBox instead of custom invalid box type\n\nFix comment about ignoring transformative properties.\n\nChange-Id: I0ab7d215e7cd02abcc69cdef7c0d1cc6700e9639\n"
    },
    {
      "commit": "8d8b58a3f517ef8d1794baa28ca6ae7d19f65514",
      "tree": "1092a87b364fcb865489dbe368ea8dbd1e195488",
      "parents": [
        "db13ece3e86317d0ace5d0dcb025f224304e5a44",
        "6bbb0faf71f645dfb577c8c26fb79dd77ac4cb01"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed May 15 15:05:53 2024 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed May 15 15:05:53 2024 +0000"
      },
      "message": "Merge \"Minor fixes and small refactor in libavifinfo\" into main"
    },
    {
      "commit": "6bbb0faf71f645dfb577c8c26fb79dd77ac4cb01",
      "tree": "fd0f31c9b2ccc2bab7aeccd95d169366ab1c9b5e",
      "parents": [
        "3becbeaf94c8e1c918979a63bb3af1cfdbc65938"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed May 15 14:57:34 2024 +0000"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed May 15 14:57:34 2024 +0000"
      },
      "message": "Minor fixes and small refactor in libavifinfo\n\nNot a security patch.\nFixes the parsing of some oddly valid and weirdly invalid AVIF files.\nAdd instructions in README.md.\n\nChange-Id: I91339d8c4f462ec6f882e3f54b3acba2087395e9\n"
    },
    {
      "commit": "db13ece3e86317d0ace5d0dcb025f224304e5a44",
      "tree": "5ca1845e66fbd9b4605fbda373c1383aef086065",
      "parents": [
        "3becbeaf94c8e1c918979a63bb3af1cfdbc65938"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed May 15 13:55:53 2024 +0000"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed May 15 13:55:53 2024 +0000"
      },
      "message": "Add missing colr box in test_12x34_gainmap_tmap\n\nGenerated with\nhttps://github.com/AOMediaCodec/libavif/blob/8d1c71906320c9a161d661f84a7028bd2348cc6d/tests/gtest/avifgainmaptest.cc#L177\n\nChange-Id: Ifa352bc376118521de9e49b2d01a045fc23aa7d2\n"
    },
    {
      "commit": "3becbeaf94c8e1c918979a63bb3af1cfdbc65938",
      "tree": "ccac501d24fc45326f7089c2a378414467185896",
      "parents": [
        "f50948793d6ae181d82c1255a40fb1becce6ee57"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Apr 08 14:50:06 2024 +0200"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Apr 08 13:04:50 2024 +0000"
      },
      "message": "Fix get_item_features() recursivity in PHP impl\n\nAdd tests/avifinfo_test_199x200_alpha_grid2x1.avif.\nUse it in tests/avifinfo_test.php for extra checks.\n\nBUG\u003daomedia:3556\n\nChange-Id: I3e4cfb03cadf17774970b5e425f9de9db69299d9\n"
    },
    {
      "commit": "f50948793d6ae181d82c1255a40fb1becce6ee57",
      "tree": "b331d02099453d5e39e61c059b6d3509bfceb862",
      "parents": [
        "b496868f7c3fd17dfeeecc0364fe37e19edd548a"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Jan 22 16:41:41 2024 +0000"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Jan 22 16:41:41 2024 +0000"
      },
      "message": "Fix $kAlphaStr in PHP libavifinfo implementation\n\nPHP strings do not behave exactly like C string literals.\nFix for https://github.com/WordPress/wordpress-develop/pull/4612\n\nAdd more test cases in avifinfo_test.php.\n\nChange-Id: I00194cb141a860ac5547cc2238907e591cc24156\n"
    },
    {
      "commit": "b496868f7c3fd17dfeeecc0364fe37e19edd548a",
      "tree": "3199c74ce3b4991dc4a9a57e367cd7f32e80d735",
      "parents": [
        "5e8d92c8bbc63dead2781d67c7236a26aef209cf"
      ],
      "author": {
        "name": "Maryla",
        "email": "maryla@google.com",
        "time": "Mon Oct 02 16:11:03 2023 +0200"
      },
      "committer": {
        "name": "Maryla",
        "email": "maryla@google.com",
        "time": "Mon Oct 02 16:11:03 2023 +0200"
      },
      "message": "Fix bug where the gain map is not detected if iprp appears before iref.\n\nChange-Id: I851c3adb9c6a760ea1693b2ee914d651a0fc7441"
    },
    {
      "commit": "5e8d92c8bbc63dead2781d67c7236a26aef209cf",
      "tree": "b4e74f6679aa2ca688a3649cd2090a1a3ea7c933",
      "parents": [
        "edbfd149e221fa918ea99cb9378471560505b3be"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Thu Aug 31 11:19:45 2023 +0200"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Thu Aug 31 11:40:27 2023 +0200"
      },
      "message": "Update avifinfo_test_12x34_gainmap_tmap.avif\n\nUse instructions at\nhttps://github.com/AOMediaCodec/libavif/blob/16f6a7dda71a27a80fd699e1991f26278d5f0a4f/tests/gtest/avifgainmaptest.cc#L115-L117\nto generate the file.\n\navifdec from libavif failed to decode the \u0027tmap\u0027 derived image item\nmetadata (introduced in libavif PR #1501).\nlibavifinfo does not parse the \u0027tmap\u0027 derived image item metadata but\nuses libavif at head as a baseline in the avifinfo_tool test.\n\nChange-Id: Idd82c7492f30e3880318b4f6cde48feed708111a\n"
    },
    {
      "commit": "edbfd149e221fa918ea99cb9378471560505b3be",
      "tree": "33b4ed511351e61ebff313d6e8b10e1ab37a6cd2",
      "parents": [
        "a7d3276357036aeb3e376ca982b7c7a16871fc18"
      ],
      "author": {
        "name": "Maryla",
        "email": "maryla@google.com",
        "time": "Fri Aug 18 16:34:33 2023 +0200"
      },
      "committer": {
        "name": "Maryla",
        "email": "maryla@google.com",
        "time": "Fri Aug 18 16:34:33 2023 +0200"
      },
      "message": "Add missing test file.\n\nChange-Id: I4a4a4ae6dbf5273e116fb43f3e6e7d3625c21f35\n"
    },
    {
      "commit": "a7d3276357036aeb3e376ca982b7c7a16871fc18",
      "tree": "056e1f82a1ded7fb7a5cdda1758b83474cf720cb",
      "parents": [
        "47fa4bf38b14e1024c719fb34681b537879636c9"
      ],
      "author": {
        "name": "Maryla",
        "email": "maryla@google.com",
        "time": "Fri Aug 18 15:49:08 2023 +0200"
      },
      "committer": {
        "name": "Maryla",
        "email": "maryla@google.com",
        "time": "Fri Aug 18 15:49:08 2023 +0200"
      },
      "message": "Add support for gain maps that use a \u0027tmap\u0027 derived item.\n\nChange-Id: I98e7195b2859c3836d9aed2b2c41da349ba08015\n"
    },
    {
      "commit": "47fa4bf38b14e1024c719fb34681b537879636c9",
      "tree": "5545a6cf2dafc5a1d4427d85e761709a90d011f8",
      "parents": [
        "707919b2f8ac1920b2f7ae252c233f9c6dcf84e1"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Fri Jun 30 14:44:51 2023 +0200"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Fri Jun 30 14:44:51 2023 +0200"
      },
      "message": "Do not include ftyp in num_parsed_boxes\n\nChange-Id: If6be78ee6514cc12a9517304cdf55f87af57d472\n"
    },
    {
      "commit": "707919b2f8ac1920b2f7ae252c233f9c6dcf84e1",
      "tree": "678ea2187db134a2cc59ecb7e9f602f2ff5cee8d",
      "parents": [
        "b297b7470c812e20951dfd55ecddb4e5591d9ba4"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Jun 26 14:11:17 2023 +0200"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Jun 26 14:11:17 2023 +0200"
      },
      "message": "Increment num_boxes if !ftyp in stream API\n\nChange-Id: I22c46d82d967ae7d154e1600ecf6e96c1589a7d6\n"
    },
    {
      "commit": "b297b7470c812e20951dfd55ecddb4e5591d9ba4",
      "tree": "5e92da67c2aea08c9cadc5221d94e1a8e9b4d077",
      "parents": [
        "5e9882e5b304c5032c1dedac4dbe397862012c0a"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Thu Jun 22 15:01:35 2023 +0200"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Thu Jun 22 15:01:35 2023 +0200"
      },
      "message": "Allow gainmap_item_id to be 0 in avifinfo_fuzz\n\nChange-Id: I840081bd14be4fdcec977063c70d837608bff7ec\n"
    },
    {
      "commit": "5e9882e5b304c5032c1dedac4dbe397862012c0a",
      "tree": "3f39214e1d43be19227dd955d1a9ca8b832d038f",
      "parents": [
        "524033ea51c0d3e30499b8da13dc325cf59aee51"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Jun 19 10:25:00 2023 +0200"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Jun 19 10:25:00 2023 +0200"
      },
      "message": "More allowed status differences in avifinfo_fuzz\n\nChange-Id: Ib9225a8b19c42b1c40168eadaaea9d415ee86d80\n"
    },
    {
      "commit": "524033ea51c0d3e30499b8da13dc325cf59aee51",
      "tree": "a9e4d08bed1f7055f6c2088b02d9e7e54fb7c626",
      "parents": [
        "f4016a46b884b8c64289b0d3762d1b8d3f79a9b9"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Thu Jun 15 13:11:17 2023 +0200"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Thu Jun 15 13:11:17 2023 +0200"
      },
      "message": "Add avifinfo_demo.c\n\nUpdate README.md.\n\nChange-Id: Iea78b740b332bae4e751cd8169bd68b8136ce965\n"
    },
    {
      "commit": "f4016a46b884b8c64289b0d3762d1b8d3f79a9b9",
      "tree": "7eebaaddc0fc2702a1eef3c32a180f8f2ba0e5d1",
      "parents": [
        "68a9457fa37e52916fdd4dff3ccecf60a2875189"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Jun 14 18:27:07 2023 +0200"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Jun 14 18:27:07 2023 +0200"
      },
      "message": "Add coverage in avifinfo_fuzz.cc for null skip arg\n\nChange-Id: Ib0b2ec18cfad6c60fc00795dcea716e3fdd460d5\n"
    },
    {
      "commit": "68a9457fa37e52916fdd4dff3ccecf60a2875189",
      "tree": "7ecf7900f22d939f5e89c002dcf5655cd1cfa827",
      "parents": [
        "7865b6b6442e7a41cf284f5315e4c6859ed21332"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Jun 14 17:37:04 2023 +0200"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Jun 14 17:37:04 2023 +0200"
      },
      "message": "Call AvifInfoIdentify() in AvifInfoGetFeatures()\n\nHaving to call AvifInfoIdentify() before AvifInfoGetFeatures() is\ncounter-intuitive. It was justified by the stream API, to avoid\nreading the bytes of the \u0027ftyp\u0027 box twice. It is not necessary for the\nraw pointer API. Matching the requirements of AvifInfoGetFeatures()\nand AvifInfoGetFeaturesStream() is less important than an easy-to-use,\nstraightforward standalone single call to identify the file type and\nget the AVIF features.\n\nChange-Id: Ib726df5446318ceedbc5b0918e2c3e1b154252b0\n"
    },
    {
      "commit": "7865b6b6442e7a41cf284f5315e4c6859ed21332",
      "tree": "aab30ff1c8f3770233114ad146d896b2b09c6b98",
      "parents": [
        "bfa0ead78011be5f30c53aae16c092b42cab4153"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Jun 14 16:17:22 2023 +0200"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Jun 14 16:17:22 2023 +0200"
      },
      "message": "Return error code on avifinfo_tool failure\n\nChange-Id: Iadbef3dbd6ad3565d1c8b0c218238123e9df5f3c\n"
    },
    {
      "commit": "bfa0ead78011be5f30c53aae16c092b42cab4153",
      "tree": "f08195c2e5e18da5c8c9027b092d605d1bdf4e30",
      "parents": [
        "94168bfcd166c49a7296d573e0268b78fea6f774"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Jun 14 15:52:25 2023 +0200"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Jun 14 15:52:25 2023 +0200"
      },
      "message": "Speed avifinfo_fuzz.cc up for large input strings\n\nChange-Id: I169f874a673834db3ac32812bf3f2bb25d9ac851\n"
    },
    {
      "commit": "94168bfcd166c49a7296d573e0268b78fea6f774",
      "tree": "77b4722fb69d36e52f0a69baba4b7472c98675f5",
      "parents": [
        "e4b76e707453b2b9f5e11fda74981b961273323a"
      ],
      "author": {
        "name": "Maryla",
        "email": "maryla@google.com",
        "time": "Wed Jun 14 15:40:59 2023 +0200"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Jun 14 15:41:44 2023 +0200"
      },
      "message": "Add security policy.\n\nChange-Id: I3819028fe680b33208878b5f6b568a281fa4d8aa\n"
    },
    {
      "commit": "e4b76e707453b2b9f5e11fda74981b961273323a",
      "tree": "0093d31f39f621ccb79c8c9f967e26bee0577cd4",
      "parents": [
        "2573f2390349436bfcb4680224e9aacdd4995814"
      ],
      "author": {
        "name": "Vincent Rabaud",
        "email": "vrabaud@google.com",
        "time": "Wed Jun 14 14:57:19 2023 +0200"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Jun 14 14:59:16 2023 +0200"
      },
      "message": "Use main by default\n\nChange-Id: I361ce25fdd03f531eec6bdceb043f3c00d6acbba\n"
    },
    {
      "commit": "2573f2390349436bfcb4680224e9aacdd4995814",
      "tree": "579237f98ed46ab36e0e4e99b7353e89f2935b7c",
      "parents": [
        "76e2630c4e940a074268d9cf4c590943523827c3"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Jun 14 14:41:04 2023 +0200"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Jun 14 14:41:04 2023 +0200"
      },
      "message": "Reorder checks in avifinfo_fuzz.cc\n\nFor clarity, verify in this order:\n- Simple raw pointer API\n- Stream API called on separate stream objects\n- Stream API called on the same stream object\n\nChange-Id: If882767ce4e3b9f8aa34afa982c597d2ea55868d\n"
    },
    {
      "commit": "76e2630c4e940a074268d9cf4c590943523827c3",
      "tree": "d84991ef00f460bacaaf24a026c844626d6b3406",
      "parents": [
        "2a44996ea17ce045a3901f321597990a50512fc0"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Tue Jun 13 16:57:09 2023 +0200"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Tue Jun 13 16:57:09 2023 +0200"
      },
      "message": "Check features status if ID is Ok in avifinfo_fuzz\n\nBe more explicit in avifinfo.h about the necessity of checking\nAvifInfoIdentifyStream() before calling AvifInfoGetFeaturesStream().\n\nChange-Id: Ie7d0e210f38a25e661b851517fb55ead89a93c2c\n"
    },
    {
      "commit": "2a44996ea17ce045a3901f321597990a50512fc0",
      "tree": "f5b604b4b006d8f915206ad4ace7b54f70e60c84",
      "parents": [
        "03d6017984f476ffaf0300c8e17acccef51d7d45"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Tue Jun 13 16:51:44 2023 +0200"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Tue Jun 13 16:51:44 2023 +0200"
      },
      "message": "Fix include path in avifinfo_fuzz_fast.cc\n\nChange-Id: Ifee12afbd9a5d78b7335dcebd0f3caff59d97023\n"
    },
    {
      "commit": "03d6017984f476ffaf0300c8e17acccef51d7d45",
      "tree": "56e2510ca58249cb1c3ee4f286bd2e638c5cd637",
      "parents": [
        "7b2edd096f1bcbeb935d585accbc94386ef279ac"
      ],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Mon Jun 12 20:12:48 2023 +0000"
      },
      "committer": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Mon Jun 12 13:40:05 2023 -0700"
      },
      "message": "avifinfo_fuzz: add coverage for non-stream fns\n\nAvifInfoIdentify() \u0026 AvifInfoGetFeatures()\n\nChange-Id: I763b377aae946c5228b25126c442a5b354a98a70\n"
    },
    {
      "commit": "7b2edd096f1bcbeb935d585accbc94386ef279ac",
      "tree": "69b05f79cee5bb07d26832d3387a6c111c8c0db1",
      "parents": [
        "c534100f32fa08ed19aac75e7dde58887557c4d9"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Jun 12 15:53:11 2023 +0000"
      },
      "committer": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Mon Jun 12 13:40:03 2023 -0700"
      },
      "message": "Add avifinfo_fuzz_fast.cc\n\navifinfo_fuzz.cc has good correctness coverage.\navifinfo_fuzz_fast.cc should test deeper branches and more values\nbecause it is way faster (it tests the libavifinfo API once per input\nstring instead of once per input string byte).\n\nChange-Id: I4fe6365cbcc82bad1491d026a6ccffbd9d8e2fdf\n"
    },
    {
      "commit": "c534100f32fa08ed19aac75e7dde58887557c4d9",
      "tree": "9bcacff6b3adbd6cff3dd9edfc0e481be6a748a6",
      "parents": [
        "d54a92a4add8fd8b9a6aa347bf7f43a23252b8d5"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Jun 12 09:37:59 2023 +0000"
      },
      "committer": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Mon Jun 12 13:40:02 2023 -0700"
      },
      "message": "Add reminder in avifinfo.h for location features\n\nChange-Id: Ie5a3a37dfb54d2e539ad002aa50169ffa37e1ebc\n"
    },
    {
      "commit": "d54a92a4add8fd8b9a6aa347bf7f43a23252b8d5",
      "tree": "66f7424c26d72edbd8aebc414c24c69b4425e801",
      "parents": [
        "5c0741840957eaa080a52910b1f4950b400c3c6f"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Thu Jun 08 17:25:35 2023 +0200"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Thu Jun 08 17:25:35 2023 +0200"
      },
      "message": "Fuzz gainmap API\n\nApply clang-format.\n\nChange-Id: Ia9e0702cd12731a077d21ab9fb3a336818271b2d\n"
    },
    {
      "commit": "5c0741840957eaa080a52910b1f4950b400c3c6f",
      "tree": "71e907d9e3548bcd8b970cf98a45e9d97f5a6a3e",
      "parents": [
        "8ed46385f4b6fb0b4680d791002cbd674b2b9cb6"
      ],
      "author": {
        "name": "Maryla",
        "email": "maryla@google.com",
        "time": "Thu May 11 14:46:37 2023 +0200"
      },
      "committer": {
        "name": "Maryla",
        "email": "maryla@google.com",
        "time": "Fri Jun 02 13:29:57 2023 +0200"
      },
      "message": "Extract info related to gain maps and the primary item id.\n\nChange-Id: I53ca31a136e4ed1f78f2b70de56ca5117d3df3cb\n"
    },
    {
      "commit": "8ed46385f4b6fb0b4680d791002cbd674b2b9cb6",
      "tree": "4be04ca79e4abacf59973ab9e7ded869100f9d33",
      "parents": [
        "c7dc947ec9c993e9c559b2153050ebe301ff4fcc",
        "d82225c6a58a68ce5258211eacc77329d77d09fe"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Feb 14 15:23:40 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Feb 14 15:23:40 2022 +0000"
      },
      "message": "Merge \"Skip any remaining \"dimg\" box byte\" into main"
    },
    {
      "commit": "d82225c6a58a68ce5258211eacc77329d77d09fe",
      "tree": "520577410b127a9c0280ee1b53463541fd831f73",
      "parents": [
        "303328511ac1bd8d76b6d6a680646f57650b786c"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Feb 14 15:03:13 2022 +0100"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Feb 14 15:03:13 2022 +0100"
      },
      "message": "Skip any remaining \"dimg\" box byte\n\nAs it is done for \"ipma\" boxes.\nAlso shorten \u0027is_parsable\u0027 assignment.\nAlso declare AVIFINFO_MAX_VALUE as a constant with the others.\n\nChange-Id: I480cc9e8984504d7dc767302d88e926a4eb56c83\n"
    },
    {
      "commit": "c7dc947ec9c993e9c559b2153050ebe301ff4fcc",
      "tree": "5588ab5000b4b80f2be3251c8ab5b1f7b8f67035",
      "parents": [
        "303328511ac1bd8d76b6d6a680646f57650b786c"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Feb 14 14:58:03 2022 +0100"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Feb 14 14:58:03 2022 +0100"
      },
      "message": "Fix fuzz timeout\n\nA 1MB video was decoded once for each byte.\nReducing the amount of parsings fixes the timeout.\nAlso C++ify avifinfo_fuzz.cc which was partly C.\n\nChange-Id: Ia967a61bf1369e2a21f0f1326579de29deb7faa9\n"
    },
    {
      "commit": "303328511ac1bd8d76b6d6a680646f57650b786c",
      "tree": "316748ac9db913408a543851ddf2d40c7d6d2b4e",
      "parents": [
        "96f34d945ac7dac229feddfa94dbae66e202b838"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Thu Feb 10 19:17:01 2022 +0100"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Thu Feb 10 19:17:01 2022 +0100"
      },
      "message": "avifinfo.php\n\nPHP implementation of avifinfo.c.\nAdd avifinfo_test.php.\n\nChange-Id: I78327c42344cb8d9eb8bcff9c74d9f615140b111\n"
    },
    {
      "commit": "96f34d945ac7dac229feddfa94dbae66e202b838",
      "tree": "d1aa68444383b11744ab53420d3add23c02ac333",
      "parents": [
        "c39192c3e02ab03a48dabd5a76a0a63407e059f9"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Nov 29 16:49:26 2021 +0100"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Nov 29 16:49:26 2021 +0100"
      },
      "message": "Split Get() into Identity and Features\n\nUsual clients such as php-src begin by identifying the bitstream\u0027s\nformat and only after start to parse it for width, height etc.\nSplitting the function in two avoids a stream rewind and/or parsing\nthe same data twice.\n\nChange-Id: I4fc814e442bebe6f48d94f634c7e86dd07c73867\n"
    },
    {
      "commit": "c39192c3e02ab03a48dabd5a76a0a63407e059f9",
      "tree": "5396328f3fac36d0ed0a4469856421e5b0d463b9",
      "parents": [
        "808a23648f75f509f126c9dd27ce6bd684a62cd2"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Nov 29 14:51:50 2021 +0100"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Nov 29 14:51:50 2021 +0100"
      },
      "message": "Remove unused num_read_bytes\n\nChange-Id: I6220ec6fd1d3e89e9ef2233df0219edcb954fc73\n"
    },
    {
      "commit": "808a23648f75f509f126c9dd27ce6bd684a62cd2",
      "tree": "458d4eae7636f37cfb2c3e7828338983b7bbb7e1",
      "parents": [
        "6b8141e74720aeebfb2326d649c55be84dc1d3b4"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Nov 29 13:47:00 2021 +0100"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Nov 29 13:47:00 2021 +0100"
      },
      "message": "Remove file_size overloads\n\nThe code logic behind *WithSize() versions can be done by the user.\nSimplifying avifinfo\u0027s API is better.\n\nChange-Id: I51387032018a1fcbf703ba2ffb5981c7f08b78b8\n"
    },
    {
      "commit": "6b8141e74720aeebfb2326d649c55be84dc1d3b4",
      "tree": "e7431664d5ef5db4eccedaa90840901d5281dae4",
      "parents": [
        "ca1fb3c7115db12ad2cd6af4cd36db8f38bfc2e9"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Fri Nov 26 17:32:39 2021 +0100"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Fri Nov 26 17:32:39 2021 +0100"
      },
      "message": "Streamed input API\n\nRefactor the code to:\n- sequentially read all boxes once into AvifInfoInternalFeatures,\n- after \"ipma\" and \"iref\", check if AvifInfoInternalFeatures contain\n  all necessary information to output AvifInfoFeatures.\nThis allows to fetch just a few bytes at a time from the stream,\nin order, in a contiguous manner and never twice the same data.\nThe drawback is the ~250-byte long AvifInfoInternalFeatures struct\nthat is stored on the stack to avoid dynamic allocation. It can be\ndecreased or increased to adjust the variety of handled input AVIFs.\n\nChange-Id: I98ccf4c55706f6c88d65008ccbcbefc782d2be87\n"
    },
    {
      "commit": "ca1fb3c7115db12ad2cd6af4cd36db8f38bfc2e9",
      "tree": "b2736d011e57d7db135c18381a282ceb03c35234",
      "parents": [
        "f292c19e4bb51ce450997a8848fe545a5533c018"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Tue Nov 23 16:14:15 2021 +0100"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Tue Nov 23 16:14:15 2021 +0100"
      },
      "message": "Abort after reading 32 sub-items\n\nTo avoid timeouts, more than 32 brands, entries etc. is\ndeemed unreasonable and kAvifInfoTooComplex is returned\ninstead. 32 is arbitrary.\n\nChange-Id: I9c9b6961237c6d123a2bd1068e0c7d7a4093d6f0\n"
    },
    {
      "commit": "f292c19e4bb51ce450997a8848fe545a5533c018",
      "tree": "15e59bc15a8579a893b07cdeb910e15417ef6dd3",
      "parents": [
        "7d89e15970515a53bca23c7b091a11df805c12b4",
        "db2175f908e40963b08ff6dec055af4a83d3b54e"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Tue Nov 23 15:07:23 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 23 15:07:23 2021 +0000"
      },
      "message": "Merge \"Handle 64b box sizes\" into main"
    },
    {
      "commit": "7d89e15970515a53bca23c7b091a11df805c12b4",
      "tree": "cf009448e586eebee1e8547656d9826ac9309949",
      "parents": [
        "296d7defcb63c0a3ba50f21a244b232646da531f"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Tue Nov 23 15:57:31 2021 +0100"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Tue Nov 23 15:57:31 2021 +0100"
      },
      "message": "Add avifinfo_tool\n\nA binary to compare the feature extraction results between libavif\nand libavifinfo. Also allows consistency-checking and min-header-size\nstats gathering.\n\nChange-Id: I70721fb52cc60add032da3f676db8a1bf356a5af\n"
    },
    {
      "commit": "db2175f908e40963b08ff6dec055af4a83d3b54e",
      "tree": "b076b6adc0af97868acdb6cd27563408d750384b",
      "parents": [
        "296d7defcb63c0a3ba50f21a244b232646da531f"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Nov 22 18:50:48 2021 +0100"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Tue Nov 23 09:52:22 2021 +0000"
      },
      "message": "Handle 64b box sizes\n\nSee context at\nhttps://aomedia-review.googlesource.com/c/libavifinfo/+/148321#:~:text\u003dI%20see%20that,here%20as%20well.\nAdd test image.\n\nChange-Id: Id71eca9f4bf4f974c7ffe284ed230dd129e94b53\n"
    },
    {
      "commit": "296d7defcb63c0a3ba50f21a244b232646da531f",
      "tree": "153ffbd3731852f045eb96e21ca32aacb13815c6",
      "parents": [
        "d84d3db78e7d46cf7950059d498b7a8f71da263b"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Nov 22 18:55:06 2021 +0100"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Mon Nov 22 18:55:06 2021 +0100"
      },
      "message": "Clearer av1C twelve_bit check\n\nChange-Id: I5ba1780d1459a51a6501be5d8dec8c0a1277d5a7\n"
    },
    {
      "commit": "d84d3db78e7d46cf7950059d498b7a8f71da263b",
      "tree": "7e8086a07404571a866c62c37e8e6d5445d9693e",
      "parents": [
        "eca2cb51dc53c1dfdc3ec3cda68c8d412bb0cb58",
        "6631771dac378fd02d17e42a90b70c20fd0fdaf7"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Fri Nov 19 10:00:38 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 19 10:00:38 2021 +0000"
      },
      "message": "Merge \"Fix twelve_bit check\" into main"
    },
    {
      "commit": "eca2cb51dc53c1dfdc3ec3cda68c8d412bb0cb58",
      "tree": "1efaf92ca5309228e8298a87f8998a2fe27d32c3",
      "parents": [
        "5ed875e3df4f6bf6d0a96bd79fdb6515e0114f50"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Thu Nov 18 17:27:32 2021 +0100"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Thu Nov 18 17:27:32 2021 +0100"
      },
      "message": "avifinfo: Fuzz target\n\nChange-Id: Ia147c689a12060e8717af18a64976aaef221747c\n"
    },
    {
      "commit": "6631771dac378fd02d17e42a90b70c20fd0fdaf7",
      "tree": "d2298a21b622053645f256202588b833f56f431d",
      "parents": [
        "5ed875e3df4f6bf6d0a96bd79fdb6515e0114f50"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Thu Nov 18 14:34:48 2021 +0100"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Thu Nov 18 14:34:48 2021 +0100"
      },
      "message": "Fix twelve_bit check\n\ntwelve_bit must be false if high_bitdepth is false, not the opposite.\nThe issue was not raised because almost all 10b AVIF files contain a\n\"pixi\" box that libavifinfo reads before the \"av1C\" box.\n\nChange-Id: I06f9d4340fd588156bcb24aa7e97cfe7f0836337\n"
    },
    {
      "commit": "5ed875e3df4f6bf6d0a96bd79fdb6515e0114f50",
      "tree": "9d13783cd8a33e1a0c1225433f01c4dc0cc5d19c",
      "parents": [
        "11b58281187f6bf9063cad2f60620a64695f2ec1"
      ],
      "author": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Wed Nov 03 15:12:37 2021 +0100"
      },
      "committer": {
        "name": "Yannis Guyon",
        "email": "yguyon@google.com",
        "time": "Tue Nov 16 10:07:40 2021 +0100"
      },
      "message": "AVIF-info library and test\n\nlibavifinfo is a standalone library that can be used to extract the\nwidth, height, bit depth and number of channels from an AVIF payload.\nIt is small on purpose and made of avifinfo.h and avifinfo.c.\n\nLicensing is inspired from libaom (boilerplates, LICENSE and PATENTS).\n\nAdd CMakeLists.txt as the build system configuration file.\n\nAdd tests/avifinfo_test.cc and a 1x1 white pixel AVIF image compressed\nwith libavif for testing purposes.\n\nAdd README.md.\n\nChange-Id: I26244b666854523fce3e001d2be9f19574a4715f\n"
    },
    {
      "commit": "11b58281187f6bf9063cad2f60620a64695f2ec1",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [],
      "author": {
        "name": "James Zern",
        "email": "jzern@google.com",
        "time": "Tue Nov 02 18:11:18 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Nov 02 18:11:18 2021 +0000"
      },
      "message": "Initial empty repository\n"
    }
  ]
}
