)]}'
{
  "commit": "be4cbb92c087349bdd0df35bd202a711e29f988d",
  "tree": "3b7fb90cb38bc6391634c7f74524d26cf6122114",
  "parents": [
    "1d32f88ab33e04b74f4e978bf30f0184d3a96011"
  ],
  "author": {
    "name": "Joe Drago",
    "email": "jdrago@netflix.com",
    "time": "Mon Sep 21 12:14:05 2020 -0700"
  },
  "committer": {
    "name": "Joe Drago",
    "email": "jdrago@netflix.com",
    "time": "Mon Sep 21 12:14:05 2020 -0700"
  },
  "message": "avifIO reader API\n\n* Add avifIO, which offers a reader API for libavif\n* Add a few new avifIO-related avifResult enums\n* Refactor high-level calls in read.c to leverage avifIO\n* avifEncoder can now ignoreExif and ignoreXMP during Parse\n* Simplified codec API to account for new avifIO reader flow\n* Switch avifdec to using avifIO\n* Added \"streaming\" testing to aviftest\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5de60b4a99c97376a00e7c0242b984a3932d32c2",
      "old_mode": 33188,
      "old_path": "CMakeLists.txt",
      "new_id": "0c7f563e435ea2843531f439a369c12334030cdb",
      "new_mode": 33188,
      "new_path": "CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "d87b574be08f989909eb1686e3ad1606fb8e7a55",
      "old_mode": 33188,
      "old_path": "apps/avifdec.c",
      "new_id": "b0bdca793ad73cec16ffc0c98b1774f531730d74",
      "new_mode": 33188,
      "new_path": "apps/avifdec.c"
    },
    {
      "type": "modify",
      "old_id": "cb2e1cd0a0db90ae4f6256168e65f6efcf7fab2b",
      "old_mode": 33188,
      "old_path": "examples/avif_example1.c",
      "new_id": "59188f795093f64b076950c8dd997383bfe11507",
      "new_mode": 33188,
      "new_path": "examples/avif_example1.c"
    },
    {
      "type": "modify",
      "old_id": "a8415efd94618c49418c3051be229a385bab49cb",
      "old_mode": 33188,
      "old_path": "include/avif/avif.h",
      "new_id": "2c580aff1133303618da9078817e63b11d2eafc8",
      "new_mode": 33188,
      "new_path": "include/avif/avif.h"
    },
    {
      "type": "modify",
      "old_id": "b7974e4a99f63da587cdc08f93727fdb7f2e47f2",
      "old_mode": 33188,
      "old_path": "include/avif/internal.h",
      "new_id": "c237866f4484b0afd661b726aac2c031e0a4e539",
      "new_mode": 33188,
      "new_path": "include/avif/internal.h"
    },
    {
      "type": "modify",
      "old_id": "cf6ddc462c714946f170f88ef18311acbe6e9104",
      "old_mode": 33188,
      "old_path": "src/avif.c",
      "new_id": "786443399406e7203a0e7016dbb062a330d0e0b6",
      "new_mode": 33188,
      "new_path": "src/avif.c"
    },
    {
      "type": "modify",
      "old_id": "cc99b3d60d5482ca40f5ecd0acb57a7ad8af9a8d",
      "old_mode": 33188,
      "old_path": "src/codec_aom.c",
      "new_id": "6bae52bfb34d238b1061ed4118b799542bdc1f37",
      "new_mode": 33188,
      "new_path": "src/codec_aom.c"
    },
    {
      "type": "modify",
      "old_id": "6c30d12c19ab1f8985c63ba4c66bdc7e971fd41d",
      "old_mode": 33188,
      "old_path": "src/codec_dav1d.c",
      "new_id": "fcd4af8d9f57a969d7a54c38e61e24ca321a0320",
      "new_mode": 33188,
      "new_path": "src/codec_dav1d.c"
    },
    {
      "type": "modify",
      "old_id": "cb020caa40e984cf2b71c07bc8597be89a80f761",
      "old_mode": 33188,
      "old_path": "src/codec_libgav1.c",
      "new_id": "75de1001fbd3b92e1ac4c4ba5b0f3b5bb846bdf3",
      "new_mode": 33188,
      "new_path": "src/codec_libgav1.c"
    },
    {
      "type": "modify",
      "old_id": "f7605efb4834b96ea76e7b958b96e18d312c530f",
      "old_mode": 33188,
      "old_path": "src/codec_rav1e.c",
      "new_id": "c0d18c69437e30d06a3cc4f82901a3362baf431c",
      "new_mode": 33188,
      "new_path": "src/codec_rav1e.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "07b2c8faf17bb7820bb689579e62c405e9b1aaf4",
      "new_mode": 33188,
      "new_path": "src/io.c"
    },
    {
      "type": "modify",
      "old_id": "291671273c7046f06a41661e7b03f9666d9e1a18",
      "old_mode": 33188,
      "old_path": "src/read.c",
      "new_id": "e279ab1a0d7f94df9a20998b1c9e2a1e17e56464",
      "new_mode": 33188,
      "new_path": "src/read.c"
    },
    {
      "type": "modify",
      "old_id": "32700610e54bcbc17de19f1c250e67ca70f567e3",
      "old_mode": 33188,
      "old_path": "src/stream.c",
      "new_id": "bc8a7b40541ebf4df02b83d1c19e9324795c1261",
      "new_mode": 33188,
      "new_path": "src/stream.c"
    },
    {
      "type": "modify",
      "old_id": "bc61b643c30373864f1bbed29638bc6137d164a1",
      "old_mode": 33188,
      "old_path": "tests/aviftest.c",
      "new_id": "236cc11a7b5ab67c52565e3aaf3f3222f865837e",
      "new_mode": 33188,
      "new_path": "tests/aviftest.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "53760c90fabcb06125e8d75d2239f6c1bafefe6c",
      "new_mode": 33188,
      "new_path": "tests/data/io/extentsalpha.avif"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a17a822b0e99754f7a65a334172f3e12d26cd716",
      "new_mode": 33188,
      "new_path": "tests/data/io/twoextents.avif"
    },
    {
      "type": "modify",
      "old_id": "6523f6af6afd354ea912c1549764b41d9a33a0ce",
      "old_mode": 33188,
      "old_path": "tests/testcase.c",
      "new_id": "cec31335217f643e52dfcd2deae0cdbb449e56e8",
      "new_mode": 33188,
      "new_path": "tests/testcase.c"
    }
  ]
}
