)]}'
{
  "commit": "a0773d37725b8a0bbd8e1a74ba59eb100f201349",
  "tree": "5556f017d1959f117d1828ddef37b99993ea953a",
  "parents": [
    "25e13f12fb820a848c88c0a576d1d4975c0abdd5"
  ],
  "author": {
    "name": "Per K",
    "email": "perkj@webrtc.org",
    "time": "Mon Jun 01 09:53:44 2026"
  },
  "committer": {
    "name": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Jun 01 11:38:02 2026"
  },
  "message": "SCReAM v2: Parse TransportPacketsFeedback once into ScreamFeedback\n\nThis CL introduces the ScreamFeedback struct, allowing SCReAM v2 to parse\nfeedback messages exactly once in ScreamV2::OnTransportPacketsFeedback\nand pass the parsed structure to other subcomponents (LossEstimator and\nDelayBasedCongestionControl).\n\nThis eliminates multiple redundant packet loops, O(N log N) sorting passes,\nand vector heap allocations per incoming feedback message.\n\nBug: webrtc:447037083\nChange-Id: I53750f4600cb8f0032dae64a956935a10440371e\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/476700\nCommit-Queue: Per Kjellander \u003cperkj@webrtc.org\u003e\nReviewed-by: Björn Terelius \u003cterelius@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#47861}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bc4e3e53b6de2a30d0fa3e0e62876e475b353f31",
      "old_mode": 33188,
      "old_path": "modules/congestion_controller/scream/BUILD.gn",
      "new_id": "46bdbb1bbf1c08827ceead41d2d6c50d791a6ddf",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "8980be87a393e27908b34c7c3bf2397d38060485",
      "old_mode": 33188,
      "old_path": "modules/congestion_controller/scream/delay_based_congestion_control.cc",
      "new_id": "d0e1e792040296fafc0464722488003ea7498d02",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/delay_based_congestion_control.cc"
    },
    {
      "type": "modify",
      "old_id": "287e5bec062e8602de7369b23d3e7b06fe19f60b",
      "old_mode": 33188,
      "old_path": "modules/congestion_controller/scream/delay_based_congestion_control.h",
      "new_id": "3854b47fb9495dda05955ffa1c7ecae0529782a6",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/delay_based_congestion_control.h"
    },
    {
      "type": "modify",
      "old_id": "d9a641d6a554bb4b6d2fcccd5568c0ffa9a8d451",
      "old_mode": 33188,
      "old_path": "modules/congestion_controller/scream/delay_based_congestion_control_unittest.cc",
      "new_id": "912c16dd4293c292b207459a99e8ac1f0cc8b977",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/delay_based_congestion_control_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "52622b57c59a0cfc3bda3f36a8a1aec07ca626be",
      "old_mode": 33188,
      "old_path": "modules/congestion_controller/scream/loss_estimator.cc",
      "new_id": "8229e2511c39635a1766df327d056720f592cdca",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/loss_estimator.cc"
    },
    {
      "type": "modify",
      "old_id": "6101af7c377062880fd35e94cb6b0a2b542d46c6",
      "old_mode": 33188,
      "old_path": "modules/congestion_controller/scream/loss_estimator.h",
      "new_id": "964b9b465d7c54bc2b96f11979e72361c358212e",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/loss_estimator.h"
    },
    {
      "type": "modify",
      "old_id": "17cb2f43b06e805e40d102b625d35ca713b77b32",
      "old_mode": 33188,
      "old_path": "modules/congestion_controller/scream/loss_estimator_unittest.cc",
      "new_id": "70f1d1af376560ce187febfe860cd856a21ae020",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/loss_estimator_unittest.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "bcf9e67e6fd1160b18f8f340bb7d541609fc72b6",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/scream_feedback.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7060750517f98e9204f2669790186021a5f555ab",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/scream_feedback.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3abc8bc2f70450b1542120ed275c08789a9c2914",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/scream_feedback_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "a3dc05f905471be9734b9b91b892439eace5a926",
      "old_mode": 33188,
      "old_path": "modules/congestion_controller/scream/scream_v2.cc",
      "new_id": "59e1a24bdb571372113d6b4e3736aa32ca33a168",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/scream_v2.cc"
    },
    {
      "type": "modify",
      "old_id": "0d5fd250aea8c83fc8c8bdca103e6f4a0ddc7501",
      "old_mode": 33188,
      "old_path": "modules/congestion_controller/scream/scream_v2.h",
      "new_id": "163bc39dba65be891bf8d9a39ac2a82e357307f0",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/scream_v2.h"
    }
  ]
}
