)]}'
{
  "commit": "12ef1717c9fbc724c05d642fbf08267e0251aab0",
  "tree": "e8c17a7dbd59b6a43eacd6178018ddb649c222a8",
  "parents": [
    "24c9b14026f6c1ee97c41bb201af569d2eb76927"
  ],
  "author": {
    "name": "Per K",
    "email": "perkj@webrtc.org",
    "time": "Tue May 19 10:37:30 2026"
  },
  "committer": {
    "name": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "webrtc-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue May 19 12:08:42 2026"
  },
  "message": "Handle reordered packets and random loss in ScreamV2\n\nThe loss event rate is updated on RTT boundaries (at least one max_rtt\nsince the last filter update). If one or more packets are reported lost\nduring an RTT interval, the EWMA filter treats the interval as a loss\nevent.\nTo handle packet reordering robustly, the estimator maintains a count of\noutstanding unrecovered lost packets. When a packet is reported lost for\nthe first time, the outstanding count increments. If a subsequently\nreceived feedback report indicates that an out-of-order packet has been\nrecovered, the count decrements. If the unrecovered count reaches zero,\nthe connection is considered loss-free, and the loss event rate is reset\nto zero.\nThe loss event rate is used for deciding if the last loss event should should trigger reference window backoff.\n\nBug: webrtc:447037083\nChange-Id: I109228a9d51be13dac621f2ac81e16597efb7f9e\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/471940\nReviewed-by: Björn Terelius \u003cterelius@webrtc.org\u003e\nCommit-Queue: Per Kjellander \u003cperkj@webrtc.org\u003e\nCr-Commit-Position: refs/heads/main@{#47732}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d249b0289235ae3a0a8ab6a0880a47e069e470b5",
      "old_mode": 33188,
      "old_path": "modules/congestion_controller/scream/BUILD.gn",
      "new_id": "0f3863f2f2242fd0b0260bdd60f583c6529f3b26",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "27ead65a8a9a8741e7d76d1b0b7dc89fbb2371af",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/loss_rate_estimator.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "514f643f53eba6dbc5fbae43307e57f7d62fcd96",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/loss_rate_estimator.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "298c147d1664fa0edc13a99e1b9778e716065830",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/loss_rate_estimator_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "5f73d2fa8d98aab42162f8441c0a8a12ed3f772b",
      "old_mode": 33188,
      "old_path": "modules/congestion_controller/scream/scream_v2.cc",
      "new_id": "40262cd9c50d81d7c837168060394e54ec395cf8",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/scream_v2.cc"
    },
    {
      "type": "modify",
      "old_id": "5582917d9f410d2ea40b6a5b13bb0bb3a8fa35a4",
      "old_mode": 33188,
      "old_path": "modules/congestion_controller/scream/scream_v2.h",
      "new_id": "7c13e5aad7a4f2452dff6999b58e2b83d87e8ca8",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/scream_v2.h"
    },
    {
      "type": "modify",
      "old_id": "7b33fbdc75750aad649ed40e241440a24f8cab48",
      "old_mode": 33188,
      "old_path": "modules/congestion_controller/scream/scream_v2_parameters.cc",
      "new_id": "33b2165fc2ee8071c2d1aadd961cda781887e4ec",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/scream_v2_parameters.cc"
    },
    {
      "type": "modify",
      "old_id": "e24d7adb096367339d1599f58f054255d1dca3c1",
      "old_mode": 33188,
      "old_path": "modules/congestion_controller/scream/scream_v2_parameters.h",
      "new_id": "88e12b4e4e7ee6f5d2c88cb750359f2e8dc1e2a4",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/scream_v2_parameters.h"
    },
    {
      "type": "modify",
      "old_id": "c4a1f6d1e89e398f3dca0a1867bec1dc594edd6b",
      "old_mode": 33188,
      "old_path": "modules/congestion_controller/scream/scream_v2_unittest.cc",
      "new_id": "c0a9d0c029c79a64be2ec1b6117cd700c413916c",
      "new_mode": 33188,
      "new_path": "modules/congestion_controller/scream/scream_v2_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "c61c97d93cc05d18c513529e5991743164de12a8",
      "old_mode": 33188,
      "old_path": "rtc_tools/rtc_event_log_visualizer/analyze_bwe.cc",
      "new_id": "e30a546b0c2535120eda7dcaef5c0ef42abb74fb",
      "new_mode": 33188,
      "new_path": "rtc_tools/rtc_event_log_visualizer/analyze_bwe.cc"
    },
    {
      "type": "modify",
      "old_id": "76bfb0fb3e3bb362c5e82e12d35c321f4cde477e",
      "old_mode": 33188,
      "old_path": "rtc_tools/rtc_event_log_visualizer/log_scream_simulation.cc",
      "new_id": "2ae08b71c928442fb689c21a1f71b6c713f63437",
      "new_mode": 33188,
      "new_path": "rtc_tools/rtc_event_log_visualizer/log_scream_simulation.cc"
    },
    {
      "type": "modify",
      "old_id": "0e7e85445b15675eaf1e7691b967a3c2ec241068",
      "old_mode": 33188,
      "old_path": "rtc_tools/rtc_event_log_visualizer/log_scream_simulation.h",
      "new_id": "6c6e88c8fd8ed13fcbb627526028ff48898c71dd",
      "new_mode": 33188,
      "new_path": "rtc_tools/rtc_event_log_visualizer/log_scream_simulation.h"
    },
    {
      "type": "modify",
      "old_id": "295a7b24cad4e126977459fb699d77e1fdd6f507",
      "old_mode": 33188,
      "old_path": "test/peer_scenario/bwe_integration_tests/scream_test.cc",
      "new_id": "2300795712befdd0140c9494e49572d1253373d3",
      "new_mode": 33188,
      "new_path": "test/peer_scenario/bwe_integration_tests/scream_test.cc"
    }
  ]
}
