)]}'
{
  "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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "977ff827b0eb21de896b0081dd35e0c612b84152",
      "old_mode": 33188,
      "old_path": "avifinfo.c",
      "new_id": "758130e4c0160655a12f5c91ba306438648e552b",
      "new_mode": 33188,
      "new_path": "avifinfo.c"
    },
    {
      "type": "modify",
      "old_id": "302bfef1783900e2fbc8a849d019bf2342761a29",
      "old_mode": 33188,
      "old_path": "avifinfo.h",
      "new_id": "fe8f9ab62265bdb0b752bfc38cfe490afe0cbf1f",
      "new_mode": 33188,
      "new_path": "avifinfo.h"
    },
    {
      "type": "modify",
      "old_id": "c289ceb6aa94c9b064f58f8235ea5f232fe85f3f",
      "old_mode": 33188,
      "old_path": "tests/avifinfo_fuzz.cc",
      "new_id": "a58f1bb61c5dd8d989fd2103cb334d487d2087ce",
      "new_mode": 33188,
      "new_path": "tests/avifinfo_fuzz.cc"
    }
  ]
}
