)]}'
{
  "commit": "7ca375c8ca54f5ab093204b9aa2bf446be10bcbd",
  "tree": "fc758b8e66a949cd5dc955a171b8a8cb61e1bd34",
  "parents": [
    "e98954c35e97dfe4d50fe6bd75587b14ffb6568e"
  ],
  "author": {
    "name": "Erik Språng",
    "email": "sprang@webrtc.org",
    "time": "Wed Feb 06 15:20:17 2019"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Wed Feb 06 15:54:11 2019"
  },
  "message": "Implement encoder overshoot detector and rate adjuster.\n\nThe overshoot detector uses a simple pacer model to determine an\nestimate of how much the encoder is overusing the target bitrate.\nThis utilization factor can then be adjuster for when configuring the\nactual target bitrate.\n\nSpatial layers (simulcast streams) are adjusted separately.\nTemporal layers are measured separately, but are combined into a single\nutilization factor per spatial layer.\n\nBug: webrtc:10155\nChange-Id: I8ea58dc6c4871e880553d7c22202f11cb2feb216\nReviewed-on: https://webrtc-review.googlesource.com/c/114886\nCommit-Queue: Erik Språng \u003csprang@webrtc.org\u003e\nReviewed-by: Ilya Nikolaevskiy \u003cilnik@webrtc.org\u003e\nReviewed-by: Rasmus Brandt \u003cbrandtr@webrtc.org\u003e\nCr-Commit-Position: refs/heads/master@{#26573}",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cb6e0dead459d2660e3c188f75304cafad38cb35",
      "old_mode": 33188,
      "old_path": "rtc_base/experiments/rate_control_settings.cc",
      "new_id": "0f19b788e08369179f3c09ad7272452e2e9f760f",
      "new_mode": 33188,
      "new_path": "rtc_base/experiments/rate_control_settings.cc"
    },
    {
      "type": "modify",
      "old_id": "e7dc8685916a075c54229eb4817076a3a08afa55",
      "old_mode": 33188,
      "old_path": "rtc_base/experiments/rate_control_settings.h",
      "new_id": "e40c7aac977d3d5df0d8f936347a26f683a33bbf",
      "new_mode": 33188,
      "new_path": "rtc_base/experiments/rate_control_settings.h"
    },
    {
      "type": "modify",
      "old_id": "ae9a1921e5884577b415f28df8ee62b0938557f6",
      "old_mode": 33188,
      "old_path": "rtc_base/experiments/rate_control_settings_unittest.cc",
      "new_id": "0d8c3767cdc40ea368f59132a739a5965ddabe4e",
      "new_mode": 33188,
      "new_path": "rtc_base/experiments/rate_control_settings_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "9874742414b67f00fa8509b108cc3a4e8c029afb",
      "old_mode": 33188,
      "old_path": "video/BUILD.gn",
      "new_id": "610a2fda422a8dec35a485b9d75e1193394956bd",
      "new_mode": 33188,
      "new_path": "video/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "eb6017c787c8b7613242814cc0fb865fab4fa65d",
      "new_mode": 33188,
      "new_path": "video/encoder_bitrate_adjuster.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8901ad403446039688358d337efda9010b4708db",
      "new_mode": 33188,
      "new_path": "video/encoder_bitrate_adjuster.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "312fde7cb37078aeeaeab6700411121daf78f99f",
      "new_mode": 33188,
      "new_path": "video/encoder_bitrate_adjuster_unittest.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f1fa3bf8f35b109a26867755678620edf5966a6f",
      "new_mode": 33188,
      "new_path": "video/encoder_overshoot_detector.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4fca2d9151cc55a9649404006f8fbfb93e2f62a1",
      "new_mode": 33188,
      "new_path": "video/encoder_overshoot_detector.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3f393df91a9a381d390fa53d276136fbded20402",
      "new_mode": 33188,
      "new_path": "video/encoder_overshoot_detector_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "15327a9fc63adf1b6dbe6a78b26c052dbd19f35a",
      "old_mode": 33188,
      "old_path": "video/end_to_end_tests/bandwidth_tests.cc",
      "new_id": "17bb9853a75da2be0273984180d85635ca7f6e3b",
      "new_mode": 33188,
      "new_path": "video/end_to_end_tests/bandwidth_tests.cc"
    },
    {
      "type": "modify",
      "old_id": "0585ef9626664b3cccf6bc4fe1f99eb36662ce05",
      "old_mode": 33188,
      "old_path": "video/video_send_stream_tests.cc",
      "new_id": "8338d842051686fbde471cb60c20e33a5a2231a8",
      "new_mode": 33188,
      "new_path": "video/video_send_stream_tests.cc"
    },
    {
      "type": "modify",
      "old_id": "ea59b0aba098ed2497ac22188bdb26902e73ccd8",
      "old_mode": 33188,
      "old_path": "video/video_stream_encoder.cc",
      "new_id": "f563f4fee4ffa878c0b57b31ba424f4f84c118cb",
      "new_mode": 33188,
      "new_path": "video/video_stream_encoder.cc"
    },
    {
      "type": "modify",
      "old_id": "577ca5b562ee92eb467ddda19fa763495d502eff",
      "old_mode": 33188,
      "old_path": "video/video_stream_encoder.h",
      "new_id": "feed55b9bf8616b7f1c2a173c421ad884027519a",
      "new_mode": 33188,
      "new_path": "video/video_stream_encoder.h"
    },
    {
      "type": "modify",
      "old_id": "fba99fe8db334f03cef9e39aab037ff08ca428a4",
      "old_mode": 33188,
      "old_path": "video/video_stream_encoder_unittest.cc",
      "new_id": "68a30a170d6748278dd746e76f37eb5d3cf1d614",
      "new_mode": 33188,
      "new_path": "video/video_stream_encoder_unittest.cc"
    }
  ]
}
