)]}'
{
  "commit": "3ca3bea9a39ba0d3d6f49b8433d78ee8dcaa762d",
  "tree": "fe47c1475e7a64d3a306375ff28b09345bef2653",
  "parents": [
    "fb718313902eaf2be17e86cc158374dfd3fc2a06"
  ],
  "author": {
    "name": "Ihor Buhaiov",
    "email": "freedbrt@gmail.com",
    "time": "Mon Oct 12 14:03:44 2026 +0200"
  },
  "committer": {
    "name": "Marco Paniconi",
    "email": "marpan@google.com",
    "time": "Mon Oct 12 12:52:33 2026 -0700"
  },
  "message": "Extend IntraBC frame borders with 2+ threads\n\nWith IntraBC on and 2 or more threads, the encoder\u0027s reconstruction\nstops matching the decoder output from the first inter frame after an\nIntraBC frame until the next key frame. The encoder codes each of\nthose frames against references the decoder doesn\u0027t have, so the\ndecoded video drifts.\n\nInter frames that point past the frame edge read the border of the\nreference frame. On IntraBC frames the encoder skips\nloopfilter_frame(), so CDEF never runs. extend_frame_borders() still\nasks extend_borders_mt() whether the CDEF workers already extended the\nborders, and the MOD_CDEF case only checks is_cdef_used(). With 2 or\nmore threads it returns 1, so nothing extends the borders and they\nkeep stale pixels. The decoder pads out of frame references per block,\nso it isn\u0027t affected.\n\nReturn 0 for MOD_CDEF on IntraBC frames, so extend_frame_borders()\nextends the borders itself.\n\nThe new test pans a screen texture after an IntraBC key frame at 2\nthreads and compares the encoder reconstruction with the decoder\noutput. Without this change frames 1 to 4 differ.\n\nChange-Id: I2359bba7ac07b40cc7aedd5ebe57c3cbad16743e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "731ec35b98447297bbc77e7e8711aa42f1376f85",
      "old_mode": 33188,
      "old_path": "av1/encoder/encoder.c",
      "new_id": "0250f97d44dffeb0cd9301815071a1f4230f0c1f",
      "new_mode": 33188,
      "new_path": "av1/encoder/encoder.c"
    },
    {
      "type": "modify",
      "old_id": "d96d0eb5038e8b5e8dd6493594b549f0301d814a",
      "old_mode": 33188,
      "old_path": "test/encode_api_test.cc",
      "new_id": "b6a59c6c75763e3c16a6cdac8f4dacf636425a00",
      "new_mode": 33188,
      "new_path": "test/encode_api_test.cc"
    }
  ]
}
