)]}'
{
  "commit": "ae397e6243e76b1875e26752765da2cc2e182030",
  "tree": "bc4bdedc78a4757293f2a12ce13d9a6cb275a284",
  "parents": [
    "18d44f560fa791d8840dedb5d93684d18b44cbfd"
  ],
  "author": {
    "name": "Rachel Barker",
    "email": "rachelbarker@google.com",
    "time": "Tue Apr 04 17:13:56 2023 +0000"
  },
  "committer": {
    "name": "Rachel Barker",
    "email": "rachelbarker@google.com",
    "time": "Tue Apr 04 17:30:08 2023 +0000"
  },
  "message": "Fix size of warp ref list\n\nThe warp ref list (WRL) and other related arrays were sized for\nSINGLE_REF_FRAMES many entries. This value seems to be intended for\nuse with the compacted ref frame set (see COMPACT_INDEX0_NRS), which\nincludes intra and the TIP frame as possible references.\n\nHowever, the WRL is only intended to be used with \"true\" single inter\nrefs at the moment, so these arrays only need to be sized for\nINTER_REFS_PER_FRAME many entries.\n\nAs well as saving space, this fixes a bug caused by a mixup of the\ncompacted single ref set constructed by COMPACT_INDEX0_NRS,\nand the combined ref index constructed by av1_ref_frame_type().\n\nSpecifically, the line\n    derive_wrl \u0026\u003d (ref_frame \u003c SINGLE_REF_FRAMES);\nends up allowing the WRL to be derived for the TIP frame and for\ncompound blocks with the ref pair (0, 1). This behaviour is not\nintended, and ends up leading to an out-of-bounds read of\nxd-\u003eglobal_motion, since that only has INTER_REFS_PER_FRAME\nmany entries.\n\nNote: As the modes which use the WRL are only enabled for single-ref\ninter blocks, this does not affect the encoder or decoder output.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "791bbf6f7cf2b6099e59a1357b7feefd0e00ea8c",
      "old_mode": 33188,
      "old_path": "av1/common/blockd.h",
      "new_id": "b87bb7da035e3101e6fe830788010132944f3306",
      "new_mode": 33188,
      "new_path": "av1/common/blockd.h"
    },
    {
      "type": "modify",
      "old_id": "9024d0d9dc39ece58c126f44f1785acdd4e80633",
      "old_mode": 33188,
      "old_path": "av1/common/mvref_common.c",
      "new_id": "b25284481995692f2b224674c7446970c2957790",
      "new_mode": 33188,
      "new_path": "av1/common/mvref_common.c"
    },
    {
      "type": "modify",
      "old_id": "0e98ac8c7190cba6a4c696eb3c6e9d44dac241d8",
      "old_mode": 33188,
      "old_path": "av1/common/mvref_common.h",
      "new_id": "9c881275fb01533ec60c1995a0b3f517f53d9205",
      "new_mode": 33188,
      "new_path": "av1/common/mvref_common.h"
    },
    {
      "type": "modify",
      "old_id": "3dfa75d34c38f979b446659b8fb2ffee1dff6474",
      "old_mode": 33188,
      "old_path": "av1/decoder/decodemv.c",
      "new_id": "4b20c7119697d90802ce95a39adf9c18569e5abe",
      "new_mode": 33188,
      "new_path": "av1/decoder/decodemv.c"
    },
    {
      "type": "modify",
      "old_id": "a2a702434f0baa4d3030e0bf6d91238beb455616",
      "old_mode": 33188,
      "old_path": "av1/encoder/block.h",
      "new_id": "4702b4fa779c14df8f0954fa513acc670bbcd9d4",
      "new_mode": 33188,
      "new_path": "av1/encoder/block.h"
    },
    {
      "type": "modify",
      "old_id": "8cbded4960cd5affa68e2dfaa2af3a62bcd5a94b",
      "old_mode": 33188,
      "old_path": "av1/encoder/encodeframe_utils.c",
      "new_id": "5208d208999a262b9e0b86937ce630d2f9a3aff4",
      "new_mode": 33188,
      "new_path": "av1/encoder/encodeframe_utils.c"
    },
    {
      "type": "modify",
      "old_id": "0ea4e81c63ce8fbf72b30cbf3e54497b05dc3f70",
      "old_mode": 33188,
      "old_path": "av1/encoder/rdopt.c",
      "new_id": "455a74a2c0818ea98e91f6d4e103f4d7394b6341",
      "new_mode": 33188,
      "new_path": "av1/encoder/rdopt.c"
    },
    {
      "type": "modify",
      "old_id": "47685f431d2f60875b5dadadefc9979224ed4eae",
      "old_mode": 33188,
      "old_path": "av1/encoder/rdopt.h",
      "new_id": "15fdc0fd1a6ed2c2f5c05311f2f005f7b7e53c3f",
      "new_mode": 33188,
      "new_path": "av1/encoder/rdopt.h"
    }
  ]
}
