)]}'
{
  "commit": "7a24158da5bbbc72330f8c71a0104a3536cd970f",
  "tree": "7ff2099cc8d1de75f0c9f7b0f64def56c6c35e3e",
  "parents": [
    "dcfe2ae6125519c57fd0012cd84ec741162ea20d"
  ],
  "author": {
    "name": "Tommi",
    "email": "tommi@webrtc.org",
    "time": "Wed Sep 16 18:58:22 2026"
  },
  "committer": {
    "name": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Sep 17 09:04:29 2026"
  },
  "message": "Don\u0027t crash when SDP describes fewer send layers\n\nRtpSenderBase::SetSsrcTask() applies the encodings the application\nconfigured via addTransceiver() to the media channel once a local\ndescription has been applied. The media channel derives its encodings\nfrom the negotiated StreamParams, so the number of layers it knows\nabout is whatever the local description describes.\n\nWhen the description describes fewer layers than the application asked\nfor, for instance because simulcast was removed by SDP munging, or\nbecause the sender is attached to an ssrc the media channel has no send\nstream for, the two views disagree and the RTC_CHECK_GE in the worker\nthread lambda terminates the process. The mismatch is a negotiation\noutcome, not memory corruption, so crashing is too strong a response\nand the SDP remains authoritative either way.\n\nApply the layers that the media channel knows about, log a warning for\nthe ones that are dropped, and leave the channel untouched when it has\nno send stream for the ssrc, which is the same treatment ssrc 0 gets.\n\nBug: webrtc:558756689, webrtc:562462476\nChange-Id: I1775221261eae116f55d5fc45e3e5a7417db88b0\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/503820\nReviewed-by: Henrik Boström \u003chbos@webrtc.org\u003e\nCommit-Queue: Tomas Gunnarsson \u003ctommi@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#48615}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3d9a23e8d19b1040af1700f3e751152f02282b45",
      "old_mode": 33188,
      "old_path": "pc/rtp_sender.cc",
      "new_id": "b19fe129c2e27ea45d7c371024188e583df497e0",
      "new_mode": 33188,
      "new_path": "pc/rtp_sender.cc"
    },
    {
      "type": "modify",
      "old_id": "d97b037471eae8e298a00a33e26350bd97c1d8e9",
      "old_mode": 33188,
      "old_path": "pc/rtp_sender.h",
      "new_id": "618df20bb2395555a139f85d564954252d31679d",
      "new_mode": 33188,
      "new_path": "pc/rtp_sender.h"
    },
    {
      "type": "modify",
      "old_id": "9070204e0162657517082c9a6c735b92a651327b",
      "old_mode": 33188,
      "old_path": "pc/rtp_sender_receiver_unittest.cc",
      "new_id": "efba1656b670230b1be1c3e13c90b47e50325b93",
      "new_mode": 33188,
      "new_path": "pc/rtp_sender_receiver_unittest.cc"
    }
  ]
}
