)]}'
{
  "commit": "64336ec42bfad8fc8fc7c1d40f472bc0c97060f7",
  "tree": "e9667fc4236eb4f41c108306fb19f21a14c2a9b0",
  "parents": [
    "c5e59d1982aea952ad4178f5b3e67f90645d0203"
  ],
  "author": {
    "name": "Ihor Buhaiov",
    "email": "freedbrt@gmail.com",
    "time": "Thu Oct 22 08:54:43 2026 +0200"
  },
  "committer": {
    "name": "Jerome Jiang",
    "email": "jianj@google.com",
    "time": "Wed Nov 11 10:13:52 2026 -0800"
  },
  "message": "rtc: Clamp ROI segment q against base_qindex\n\nav1_apply_roi_map() checked each segment\u0027s delta q against the qindex\nof the last segment that had a delta, not against base_qindex. So a\nsegment after a raised one could skip the clamp, or get a clamp value\nfrom the wrong qindex, and end up at qindex 0. With base_qindex 0, a\nsegment without a delta stayed at qindex 0 once an earlier segment had\nbeen moved to 1. nonrd can\u0027t code a lossless segment. It hits the\nlossless tx size assert in av1_nonrd_pick_intra_mode(), and without\nasserts the stream is broken.\n\nClamp every segment against base_qindex. The ROI rdmult still follows\nthe last segment with a requested delta, so moving a segment off\nqindex 0 does not change it.\n\nRepro: ROIMapTest.ROIDeltaQMixed sets segment 1 to +10 and segment 2\nto -63, which makes segment 2 lossless on every frame.\n\nChange-Id: I5a7d43356f5620edaf3587b4dbd6af31a7396c4b\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3d995baca69125667445d5857cb0456ce7952a9d",
      "old_mode": 33188,
      "old_path": "av1/encoder/encoder_utils.c",
      "new_id": "7a478da97dcc57ed4f405646dd14e2aa06466feb",
      "new_mode": 33188,
      "new_path": "av1/encoder/encoder_utils.c"
    },
    {
      "type": "modify",
      "old_id": "4da3c95c42de6c5dba0313c990eafde93f1be5f4",
      "old_mode": 33188,
      "old_path": "test/roi_map_test.cc",
      "new_id": "627076f94556de208fe3b36871200985a3fe0f5f",
      "new_mode": 33188,
      "new_path": "test/roi_map_test.cc"
    }
  ]
}
