)]}'
{
  "commit": "094e6166339bc317d54b42460232c28193ea4daf",
  "tree": "c33759b5ebc2b09fdbc999e68e0ebc304fa32e48",
  "parents": [
    "cf0505a8612456178aa4e9b8321314a23e52f7cd"
  ],
  "author": {
    "name": "Vignesh Venkatasubramanian",
    "email": "vigneshv@google.com",
    "time": "Wed May 17 15:24:35 2023 -0700"
  },
  "committer": {
    "name": "Vignesh Venkatasubramanian",
    "email": "vigneshvg@users.noreply.github.com",
    "time": "Mon May 22 13:58:32 2023 -0700"
  },
  "message": "Use global configs for keyframe interval\n\nInstead of computing the required keyframe interval in libavif\ncode and passing the \"force keyframe\" flag on individual frames,\nuse each encoder\u0027s global configuration parameter to set the\nmaximum keyframe interval.\n\nFor libaom: `kf_max_dist`.\nFor rav1e: `key_frame_interval`.\nFor svt-av1: `intra_period_length` and `force_key_frames`.\n\nHere\u0027s the output obtained from various encoders for encoding an\nanimated file with 10 frames with different values for\n--keyframe. Each line is read as follows:\n--keyframe value: list of key frames before \u003d\u003e list of keyframes after.\n\naom:\n --keyframe 0: same before and after.\n --keyframe 1: same before and after.\n --keyframe 2: 1,2,3,4,5,6,7,8,9,10 \u003d\u003e 1,3,5,7,9 (the old behavior was not incorrect, but new one is exact).\n --keyframe 5: 1,2,6,7 \u003d\u003e1,6 (the old behavior was not incorrect, but new one is exact).\n\nrav1e:\n  * no changes. same output before and after.\n\nsvt-av1:\n --keyframe 0: same before and after.\n --keyframe 1: 1 \u003d\u003e 1,2,3,4,5,6,7,8,9,10 (old behavior was incorrect).\n --keyframe 2: 1 \u003d\u003e 1,3,5,7,9 (old behavior was incorrect).\n --keyframe 5: 1 \u003d\u003e 1,6 (old behavior was incorrect).\n\nTo sum up:\n * svt-av1 was not producing the intended output with --keyframe\n   before this change.\n * libaom had some weirdness in keyframe spacing when using the\n   force keyframe flag on each frame and that weirdness goes away\n   when using the kf_max_dist configuration (see:\n   https://bugs.chromium.org/p/aomedia/issues/detail?id\u003d3445).\n\nThe `AVIF_ADD_IMAGE_FLAG_FORCE_KEYFRAME` flag is retained in the\ncodebase since there are some follow-up changes that will make\nuse of the flag to synchronize keyframe placement between the\ncolor and alpha plane encoders (Issue #841).\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3688d14941a7a633212a0d713fded752c699fb3f",
      "old_mode": 33188,
      "old_path": "CHANGELOG.md",
      "new_id": "40d93114f93ff8e8ac52e2d418b138abe0810833",
      "new_mode": 33188,
      "new_path": "CHANGELOG.md"
    },
    {
      "type": "modify",
      "old_id": "9d06223d71a417480d4cd3278e0eea6ce9c1f778",
      "old_mode": 33188,
      "old_path": "apps/avifenc.c",
      "new_id": "7586ba1d094913e93f96d352f803d2fe2005d30c",
      "new_mode": 33188,
      "new_path": "apps/avifenc.c"
    },
    {
      "type": "modify",
      "old_id": "6e86aa2752c79eebafd20f9a465441d2c7d91e36",
      "old_mode": 33188,
      "old_path": "include/avif/avif.h",
      "new_id": "c610528a706c57142bd0918f7f65792afaa91f9c",
      "new_mode": 33188,
      "new_path": "include/avif/avif.h"
    },
    {
      "type": "modify",
      "old_id": "26b780a83d3491dc3518db38be33987a5907d4e3",
      "old_mode": 33188,
      "old_path": "src/codec_aom.c",
      "new_id": "6c7cbcbf832f22af0bfc668382cf68541094d48b",
      "new_mode": 33188,
      "new_path": "src/codec_aom.c"
    },
    {
      "type": "modify",
      "old_id": "534dd5d0249ca9515a82019c1ab36a761a4afc7a",
      "old_mode": 33188,
      "old_path": "src/codec_rav1e.c",
      "new_id": "febce2d6931b9c340c5bc8dfffd23bec200c9826",
      "new_mode": 33188,
      "new_path": "src/codec_rav1e.c"
    },
    {
      "type": "modify",
      "old_id": "4e13450a0757be141389a35b27285fb45feaaf00",
      "old_mode": 33188,
      "old_path": "src/codec_svt.c",
      "new_id": "f0e8aa1d3ccef7a1158d67853de4f7dcf5456e37",
      "new_mode": 33188,
      "new_path": "src/codec_svt.c"
    },
    {
      "type": "modify",
      "old_id": "cb053e41ac07cdf20b30a950ae56356f7681ea1a",
      "old_mode": 33188,
      "old_path": "src/write.c",
      "new_id": "2ba625130528c96158ab370b7fdea6a445b7928b",
      "new_mode": 33188,
      "new_path": "src/write.c"
    }
  ]
}
