)]}'
{
  "commit": "5d3d740dde020e56edf33b686ff3a7848342319e",
  "tree": "a971fcc477ba93dfcde1e7c113ee809f05843b71",
  "parents": [
    "8fbd65b2f354e1d7059f8b1899f3f0373d1b3e2a"
  ],
  "author": {
    "name": "Marco Paniconi",
    "email": "marpan@google.com",
    "time": "Fri Oct 16 03:58:41 2026 +0000"
  },
  "committer": {
    "name": "Marco Paniconi",
    "email": "marpan@google.com",
    "time": "Wed Oct 21 18:18:07 2026 +0000"
  },
  "message": "rtc: Clamp forced NEWMV vectors in handle_inter_mode_nonrd\n\nIn handle_inter_mode_nonrd(), when NEWMV reuses the superblock motion\nvector (x-\u003esb_me_mv, searched relative to (0, 0)) or an inter-layer SVC\nmotion vector (force_mv_inter_layer), search_new_mv() is bypassed. As a\nresult, the motion vector was not constrained relative to the block\u0027s\nreference MV predictor (ref_mv), allowing |mv - ref_mv| to exceed MV_MAX\n(MV_CLASS_10) during bitstream encoding, and leaving rate_mv at 0.\n\nClamp the forced NEWMV motion vector to SubpelMvLimits around ref_mv,\nskip NEWMV if the clamped vector equals ref_mv, and compute rate_mv\nvia av1_mv_bit_cost().\n\nUnittest added.\n\nBug: 574032795\nChange-Id: Ib688ce9b4a852a12ba755a281ab532332ffa6126\n(cherry picked from commit a01bb1dddef8acf39a330dfc21b313518ad47576)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6c8649922872a8b565dc3209832afb46de616c2b",
      "old_mode": 33188,
      "old_path": "av1/encoder/nonrd_pickmode.c",
      "new_id": "a4a0db5c9824b7e60b594af80113e173b85dc9cd",
      "new_mode": 33188,
      "new_path": "av1/encoder/nonrd_pickmode.c"
    },
    {
      "type": "modify",
      "old_id": "3f1a290bf6aa52ba6d193e758f83951351c06730",
      "old_mode": 33188,
      "old_path": "test/encode_api_test.cc",
      "new_id": "c43a5321d499052b8bee949c12b33dbfba6d73ad",
      "new_mode": 33188,
      "new_path": "test/encode_api_test.cc"
    }
  ]
}
