)]}'
{
  "commit": "b5f92a845464db51123572b9b52fcabfc530e06b",
  "tree": "bba81006051c196901f2d444a95fa6e620767f43",
  "parents": [
    "b7926e61f11b6393d5178805fb6a85b1d8f25daf"
  ],
  "author": {
    "name": "Lin Zheng",
    "email": "linzhen@google.com",
    "time": "Thu Sep 10 00:06:05 2026 +0000"
  },
  "committer": {
    "name": "Lin Zheng",
    "email": "linzhen@google.com",
    "time": "Fri Sep 11 12:19:51 2026 -0700"
  },
  "message": "Disallow global motion estimation on mismatched frame strides\n\nIn the case of dynamic resolution changes, the source frame and\nreference frames may have identical crop dimensions but different\nborder paddings and strides.\n\nBecause optical flow computation takes a single stride parameter for both\nbuffers, evaluating optical flow across buffers with mismatched strides\ncauses out-of-bounds row indexing and memory corruption.\n\nThis patch:\n1. Adds stride checks in av1_compute_global_motion_disflow and\n   av1_compute_global_motion_feature_match to safely return false when\n   layer 0 strides differ.\n2. Checks ref_buf[frame]-\u003ey_stride \u003d\u003d cpi-\u003esource-\u003ey_stride in\n   update_valid_ref_frames_for_gm() so mismatched reference frames\n   are skipped for global motion search.\n3. Adds a unit test in DisflowTest.MismatchedStrides covering both\n   disflow and corner match algorithms.\n\nBug: aomedia:559075256\nChange-Id: If79b7d8705bb839c88e1d2f2d168af993b7a8b77\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "07ea924e8ed40fee387e94fcb290f7d42374cffe",
      "old_mode": 33188,
      "old_path": "aom_dsp/flow_estimation/corner_match.c",
      "new_id": "419884b8e6a4aa03d38aa8ec0d41b5f3c8cacea3",
      "new_mode": 33188,
      "new_path": "aom_dsp/flow_estimation/corner_match.c"
    },
    {
      "type": "modify",
      "old_id": "a1d74914abcb72390d4427ba0fbee482bd0a7ce0",
      "old_mode": 33188,
      "old_path": "aom_dsp/flow_estimation/disflow.c",
      "new_id": "cc1b56c8439550e666b133167ce996191637992e",
      "new_mode": 33188,
      "new_path": "aom_dsp/flow_estimation/disflow.c"
    },
    {
      "type": "modify",
      "old_id": "4fdad0bedb13a4534604047eeeae9d693e6cd911",
      "old_mode": 33188,
      "old_path": "av1/encoder/global_motion_facade.c",
      "new_id": "7b1af9ca7faebf6c3fec8669c526b3816b1e710c",
      "new_mode": 33188,
      "new_path": "av1/encoder/global_motion_facade.c"
    },
    {
      "type": "modify",
      "old_id": "d881f7baa4cc569792cdab47bc286befd34d8836",
      "old_mode": 33188,
      "old_path": "test/disflow_test.cc",
      "new_id": "30d402ad128b8c45b20a4873c94b261330a816a8",
      "new_mode": 33188,
      "new_path": "test/disflow_test.cc"
    }
  ]
}
