)]}'
{
  "commit": "9e2b7a84481c0b87a1097753c4db76cb35d72958",
  "tree": "236440de2b2e2e0f06ac1c0bfbff7354b75f8fa3",
  "parents": [
    "12ef1717c9fbc724c05d642fbf08267e0251aab0"
  ],
  "author": {
    "name": "Tommi",
    "email": "tommi@webrtc.org",
    "time": "Tue May 19 11:05:07 2026"
  },
  "committer": {
    "name": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue May 19 14:50:39 2026"
  },
  "message": "Move audio and video packet demuxing to the network thread\n\nMove RTP packet demuxing in Call to the network thread. By resolving the\ncorrect receiver sink earlier in the pipeline, we encapsulate the\nasynchronous demuxing process while maintaining the autonomy of\nindividual receive streams.\n\nTo safely handle the cross-thread delivery of packets—where a sink might\nbe resolved on the network thread but destroyed before the worker thread\ncan process the packet—an `RtpSinkValidator` interface is introduced.\n`Call` implements this validator to track active sinks and verifies\ntheir existence prior to packet dispatch, preventing use-after-free\nbugs.\n\nAdditionally, a `DisconnectFromNetworkThread` method is added to\nensure safe teardown during connection closure.\n\nBug: webrtc:42222117\nChange-Id: Ieddee38399d5d8098ae9e03a1a8a6ed3f86783d6\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/472240\nReviewed-by: Harald Alvestrand \u003chta@webrtc.org\u003e\nCommit-Queue: Tomas Gunnarsson \u003ctommi@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#47733}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "17d20878f0a4645a4bedf4b03ea80950902ecc8d",
      "old_mode": 33188,
      "old_path": "audio/audio_receive_stream_unittest.cc",
      "new_id": "82528b8b2f44589b43ebb00f87d2378684dff8e2",
      "new_mode": 33188,
      "new_path": "audio/audio_receive_stream_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "7938d17da7e2f4f1e997b7d4dd3a1a55187badeb",
      "old_mode": 33188,
      "old_path": "call/BUILD.gn",
      "new_id": "000a5ca17da4d27d5743aff332c27b7743247bce",
      "new_mode": 33188,
      "new_path": "call/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "6110758cf02be50d2e60fdfb141c2796f0775eac",
      "old_mode": 33188,
      "old_path": "call/call.cc",
      "new_id": "e8bd43a9e402badea04eca7058533eaacea04472",
      "new_mode": 33188,
      "new_path": "call/call.cc"
    },
    {
      "type": "modify",
      "old_id": "636c0f9737ff44a6ba1e184c0c2a8bbea6735471",
      "old_mode": 33188,
      "old_path": "call/call.h",
      "new_id": "0cbfe1d4db929c97b4944a079290a7de67fe3001",
      "new_mode": 33188,
      "new_path": "call/call.h"
    },
    {
      "type": "modify",
      "old_id": "c4df175cdfdd8a6ad8f4ea0161e743b75a7e23d6",
      "old_mode": 33188,
      "old_path": "call/flexfec_receive_stream_unittest.cc",
      "new_id": "e473cf66b24093f7dd4081484931c898fd3090f5",
      "new_mode": 33188,
      "new_path": "call/flexfec_receive_stream_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "68b979dde90241e1e7dbd289d8a7c15f78d1cce9",
      "old_mode": 33188,
      "old_path": "call/rtp_stream_receiver_controller.cc",
      "new_id": "66ee5eb792b365f2c1c12ad5df7cc3ac51667f9e",
      "new_mode": 33188,
      "new_path": "call/rtp_stream_receiver_controller.cc"
    },
    {
      "type": "modify",
      "old_id": "a10d774a165ee2ea0ca14dfd39bb8e4c83c4b758",
      "old_mode": 33188,
      "old_path": "call/rtp_stream_receiver_controller.h",
      "new_id": "b52ddb60f5f5472f9f6ecf7562b7c81a82bc5f86",
      "new_mode": 33188,
      "new_path": "call/rtp_stream_receiver_controller.h"
    },
    {
      "type": "modify",
      "old_id": "8bd0f0a6bf96bef080bac750b23731a5a3ff8214",
      "old_mode": 33188,
      "old_path": "media/engine/fake_webrtc_call.h",
      "new_id": "f1f47b1726860afe0c181d53388f1227724f2e9e",
      "new_mode": 33188,
      "new_path": "media/engine/fake_webrtc_call.h"
    },
    {
      "type": "modify",
      "old_id": "f4aad52ef5560cc8c779c07aafb8954775151b29",
      "old_mode": 33188,
      "old_path": "modules/rtp_rtcp/source/nack_rtx_unittest.cc",
      "new_id": "f03cfccb4ead394b929c31176b28da74b9e5bb0b",
      "new_mode": 33188,
      "new_path": "modules/rtp_rtcp/source/nack_rtx_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "2dd0328ba05e32aac4de2607d3dee2c0a24f0732",
      "old_mode": 33188,
      "old_path": "pc/peer_connection.cc",
      "new_id": "d85270a34a7a6239b66a2ba73d5a186aa14970ae",
      "new_mode": 33188,
      "new_path": "pc/peer_connection.cc"
    },
    {
      "type": "modify",
      "old_id": "88d360bf1ca533539c2862297a30b3a2c49054ae",
      "old_mode": 33188,
      "old_path": "video/video_receive_stream2_unittest.cc",
      "new_id": "63ece66733ce07af90fcbe0478c0ee3b1d553eff",
      "new_mode": 33188,
      "new_path": "video/video_receive_stream2_unittest.cc"
    }
  ]
}
