)]}'
{
  "commit": "b6c845d5cba76187a5ed38a3602e7bf3abd9b3b5",
  "tree": "26192f24e88fa8c8b36c267ffaf6eb88179d8f58",
  "parents": [
    "52868e451ee2cb462f42c665145107fd418294a5"
  ],
  "author": {
    "name": "Tommi",
    "email": "tommi@webrtc.org",
    "time": "Tue Nov 10 15:32:03 2026"
  },
  "committer": {
    "name": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Nov 10 16:26:47 2026"
  },
  "message": "Handle video layer allocation updates on the network thread\n\nVideoStreamEncoder reports layer allocation changes on the encoder\nqueue. RtpVideoSender applied them there, under its lock, and posted the\nactivation of the RTP modules to the network thread. The key frame of a\nre-enabled layer could reach RtpVideoSender before the module was\nactive, which https://webrtc-review.googlesource.com/c/src/+/505681\nworked around by enabling media ahead of the activation.\n\nNow that encoded frames are handled on the network thread, the update is\nposted there too, and RtpVideoSender applies it, including the module\nactivation, right away. A frame encoded after an update is posted after\nit, also when a hardware encoder calls back on its own thread, so the\nframe is sent with the new allocation and finds its module active. The\nearly media enable and the matching check in OnEncodedImage() are\nremoved.\n\nPart of running the RTP send path on a single sequence, so that\nRTPSender and RtpVideoSender no longer need locks.\n\nBug: webrtc:42223727\nChange-Id: Icc78ca7a4580d03f47ea1cfc9514bd24fbb43fe4\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/507981\nCommit-Queue: Tomas Gunnarsson \u003ctommi@webrtc.org\u003e\nReviewed-by: Erik Språng \u003csprang@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#49229}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c9e4f1f4a4f5427238a7cf6f54dd84614d8b01d3",
      "old_mode": 33188,
      "old_path": "call/rtp_video_sender.cc",
      "new_id": "4f8655e804c3e9b967666e2ea24417c4583cda67",
      "new_mode": 33188,
      "new_path": "call/rtp_video_sender.cc"
    },
    {
      "type": "modify",
      "old_id": "ed95bdc2010b7232778c12127c6aaf4bb53a6f46",
      "old_mode": 33188,
      "old_path": "call/rtp_video_sender_interface.h",
      "new_id": "c0c289cd803af382633ca523149d11be987ec98b",
      "new_mode": 33188,
      "new_path": "call/rtp_video_sender_interface.h"
    },
    {
      "type": "modify",
      "old_id": "1c6c775366bb7f254381448b739ed13f9fa34c9c",
      "old_mode": 33188,
      "old_path": "call/rtp_video_sender_unittest.cc",
      "new_id": "5e515a29f2d315d6051145c4ba0d4c06459a3d17",
      "new_mode": 33188,
      "new_path": "call/rtp_video_sender_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "562da58729087e87c1053d2916c2ed189ddba638",
      "old_mode": 33188,
      "old_path": "video/video_send_stream_impl.cc",
      "new_id": "be0b404a906369c30095791f2aa758c0fe7b9b81",
      "new_mode": 33188,
      "new_path": "video/video_send_stream_impl.cc"
    },
    {
      "type": "modify",
      "old_id": "639510950ffbbf1793bf2485bbb61764b5f950b8",
      "old_mode": 33188,
      "old_path": "video/video_send_stream_impl_unittest.cc",
      "new_id": "b6407cf07ab95353814bd6b5b6c5084abd843c77",
      "new_mode": 33188,
      "new_path": "video/video_send_stream_impl_unittest.cc"
    }
  ]
}
