)]}'
{
  "commit": "16be9d989debc23bfd2d1bca93728833eb93625d",
  "tree": "ab35296502e2fa12834b4a3e8277dceb7b15ae5b",
  "parents": [
    "6f76a57334e3d1f4629fdbf7f9d9bc3c38feadc9"
  ],
  "author": {
    "name": "Erik Språng",
    "email": "sprang@webrtc.org",
    "time": "Tue Mar 17 14:51:18 2026"
  },
  "committer": {
    "name": "WebRTC LUCI CQ",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Mar 17 16:58:09 2026"
  },
  "message": "Fix racy pending frame status in SimulcastEncoderAdapter.\n\nWhile each sub-encoder (in a StreamContext) can be assumed to process\nframes in order, there is the chance for a data race since the\n`OnEncodedImage` callback can happen asynchronously from another thread.\nThis CL makes sure to protect the `pending_rtp_timestamps_` list using a\nmutex to prevent issue in such cases.\n\nA pretty complex unit test is also added, that is consistely able to\nreproduce this problem when executed under TSAN.\n\nBug: webrtc:467444018\nChange-Id: I595dd403558549b338ac6a67ebc87f6cb610a481\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/457620\nReviewed-by: Rasmus Brandt \u003cbrandtr@webrtc.org\u003e\nCommit-Queue: Erik Språng \u003csprang@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#47186}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9b026bf2447a849519861c05cdb501a6b133b4cd",
      "old_mode": 33188,
      "old_path": "media/BUILD.gn",
      "new_id": "d02dea67681579e7daf5fedaef41aae7404f0d19",
      "new_mode": 33188,
      "new_path": "media/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "c25d0a5394c7f1a9cc5e1af73020291926acd7aa",
      "old_mode": 33188,
      "old_path": "media/engine/simulcast_encoder_adapter.cc",
      "new_id": "fbed6ef915601aef05fa62fdb6570933d7cbae50",
      "new_mode": 33188,
      "new_path": "media/engine/simulcast_encoder_adapter.cc"
    },
    {
      "type": "modify",
      "old_id": "0bc6c40eb1076377084d07255294ce9283fec577",
      "old_mode": 33188,
      "old_path": "media/engine/simulcast_encoder_adapter.h",
      "new_id": "99ca19d43132fc54d49c47774c8c63fbdda53f78",
      "new_mode": 33188,
      "new_path": "media/engine/simulcast_encoder_adapter.h"
    },
    {
      "type": "modify",
      "old_id": "ca0bb2bded91ad7806131793ff536a5c9767c1b3",
      "old_mode": 33188,
      "old_path": "media/engine/simulcast_encoder_adapter_unittest.cc",
      "new_id": "df2894c339df8bf21ef0032a762be0a239e5c99e",
      "new_mode": 33188,
      "new_path": "media/engine/simulcast_encoder_adapter_unittest.cc"
    }
  ]
}
