)]}'
{
  "commit": "9577bc1254eb13b54200b89752ae0b28091deffb",
  "tree": "15e0994d445e344479f6c7bfa6b71363a31da07e",
  "parents": [
    "90f39bb849cfb6c3864512d05b2b430a256c82b4"
  ],
  "author": {
    "name": "Rachel Barker",
    "email": "rachelbarker@google.com",
    "time": "Thu Mar 30 20:24:43 2023 +0000"
  },
  "committer": {
    "name": "Wan-Teh Chang",
    "email": "wtc@google.com",
    "time": "Sat May 06 00:25:23 2023 +0000"
  },
  "message": "Fix MV clamping in av1_int_pro_motion_estimation\n\nBefore this commit, av1_int_pro_motion_estimation does a full-pixel\nmotion search, but then converts its result to a normal MV and clamps\nagainst the subpel MV search limits. This can lead to issues if clamping\noccurs, because the result may end up not being pixel-aligned any more.\n\nIn particular, search_new_mv takes the result of\nav1_int_pro_motion_estimation and converts it back to a full-pixel MV.\nIf the MV was clamped and now has non-pixel-aligned components, then\nthe resulting fullpel MV can be pushed outside of the motion search limits,\nleading to an assertion failure a few lines later.\n\nThe correct solution is for av1_int_pro_motion_estimation to clamp its\nresult against the fullpel motion search limits. This ensures that the\noutput motion vector will always be pixel-aligned. Further, the fullpel\nmotion search limits are computed with the correct rounding to ensure\nthat they properly lie within the subpel search limits.\n\nSTATS_CHANGED\n\nBug: aomedia:3418\nChange-Id: Icb1c87a95b287c6f217b38de6dd7d0d74d657839\n(cherry picked from commit 61fa302827b1673de5c3a63cb391682c7abb414b)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b455d23fa86193fa4df199212ec16f4a851ec20e",
      "old_mode": 33188,
      "old_path": "av1/encoder/mcomp.c",
      "new_id": "8fd1ab1b254de6838d1e7bfac8c5e84ed7bde920",
      "new_mode": 33188,
      "new_path": "av1/encoder/mcomp.c"
    }
  ]
}
