)]}'
{
  "commit": "ce0ea49001238a2d624a54bdd6fefb4bae181961",
  "tree": "c11b950d228ad15d8cd97cb28038b14d6bcc9e48",
  "parents": [
    "d23820088285b76b4ec2ca4631e8474de24ed6e9"
  ],
  "author": {
    "name": "Henrik Boström",
    "email": "hbos@webrtc.org",
    "time": "Mon Jan 13 10:27:18 2020"
  },
  "committer": {
    "name": "Commit Bot",
    "email": "commit-bot@chromium.org",
    "time": "Mon Jan 13 11:14:04 2020"
  },
  "message": "VideoStreamEncoder configuring source/sink with VideoSourceController.\n\nThis is part of the work for making VideoStreamEncoder responsible for\nconfiguring its source/sink and limiting the responsibility of\nOveruseFrameDetectorResourceAdaptationModule to only output relevant\nVideoSourceRestrictions.\n\nBEFORE THIS CL\n\nPrior to this CL, OveruseFrameDetector was responsible for performing\nAddOrUpdateSink() on the source, which it did using its nested class\nVideoSourceProxy.\n\nAddOrUpdateSink() could happen for both adaptation and non-adaptation\nrelated reasons. For example:\n- Adaptation related: AdaptUp() or AdaptDown() happens, causing updated\n  VideoSourceRestrictions.\n- Non-adaptation related: VideoStreamEncoder asks the module to\n  reconfigure the source/sink for it, such as with\n  SetMaxFramerateAndAlignment() or SetWantsRotationApplied().\n\nAFTER THIS CL\n\nAddOrUpdateSink() is performed by VideoSourceController, which is owned\nby VideoStreamEncoder. Any reconfiguration has to go through the\nVideoStreamEncoder. This means that:\n- Non-adaptation related settings happen between VideoStreamEncoder and\n  VideoSourceController directly (without going through the adaptation\n  module).\n- Adaptation related changes can be expressed in terms of\n  VideoSourceRestrictions. OveruseFrameDetectorResourceAdaptationModule\n  only has to output the restrictions and not know or care about other\n  source/sink settings.\n\nFor now, VideoSourceController has to know about DegradationPreference.\nIn a future CL, the DegradationPreference logic should move back to\nthe adaptation module. The VideoSourceRestrictions are fully capable of\nexpressing all possible source/sink values without the \"modifier\" that\nis the degradation preference.\n\nBug: webrtc:11222\nChange-Id: I0f058c4700ca108e2d9f212e38b61f6f728aa419\nReviewed-on: https://webrtc-review.googlesource.com/c/src/+/162802\nCommit-Queue: Henrik Boström \u003chbos@webrtc.org\u003e\nReviewed-by: Ilya Nikolaevskiy \u003cilnik@webrtc.org\u003e\nReviewed-by: Evan Shrubsole \u003ceshr@google.com\u003e\nCr-Commit-Position: refs/heads/master@{#30228}\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a51f93015db8a0e06820288b62b4fff95d2d8440",
      "old_mode": 33188,
      "old_path": "call/adaptation/BUILD.gn",
      "new_id": "80b2c0584afe1700aadc9d61727d2eb5e51e6be6",
      "new_mode": 33188,
      "new_path": "call/adaptation/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "941278bdaced272af040501573e02a18c5b28b80",
      "old_mode": 33188,
      "old_path": "call/adaptation/resource_adaptation_module_interface.cc",
      "new_id": "e89d1eff2c03404621bbfa896e2f4529ca4efaae",
      "new_mode": 33188,
      "new_path": "call/adaptation/resource_adaptation_module_interface.cc"
    },
    {
      "type": "modify",
      "old_id": "929011ac565c0d35379f2654eff3e855e7205b9f",
      "old_mode": 33188,
      "old_path": "call/adaptation/resource_adaptation_module_interface.h",
      "new_id": "825b914d6e4e5117bd6c85a7e2989078e381d997",
      "new_mode": 33188,
      "new_path": "call/adaptation/resource_adaptation_module_interface.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b848bf80bc0f787a59a17d54d6c67bd35bdc47e0",
      "new_mode": 33188,
      "new_path": "call/adaptation/video_source_restrictions.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a992084d06012ba4013f947e86c9d80ad6d7032b",
      "new_mode": 33188,
      "new_path": "call/adaptation/video_source_restrictions.h"
    },
    {
      "type": "modify",
      "old_id": "daa3a57764d1745aecb0826c761df67b86acbc26",
      "old_mode": 33188,
      "old_path": "video/BUILD.gn",
      "new_id": "c77973ef44fbae1a5257c28514e4d1b6c8d6daa0",
      "new_mode": 33188,
      "new_path": "video/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "9b3cbf6b36dd768808f35438a3207807cd10927a",
      "old_mode": 33188,
      "old_path": "video/overuse_frame_detector_resource_adaptation_module.cc",
      "new_id": "673eebd09e995d1a117e76b4f4d2e6de709b6e02",
      "new_mode": 33188,
      "new_path": "video/overuse_frame_detector_resource_adaptation_module.cc"
    },
    {
      "type": "modify",
      "old_id": "21e44a2d59af2dfc2f957591b2d1c4beabdb290c",
      "old_mode": 33188,
      "old_path": "video/overuse_frame_detector_resource_adaptation_module.h",
      "new_id": "c5485c19cde265c05501bcb3d186db2e49886647",
      "new_mode": 33188,
      "new_path": "video/overuse_frame_detector_resource_adaptation_module.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f3585766a04d47d12cd4755b1d0083403baa3565",
      "new_mode": 33188,
      "new_path": "video/video_source_sink_controller.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "79260363ea3704253ab8a6655d8a2b5ca3c44403",
      "new_mode": 33188,
      "new_path": "video/video_source_sink_controller.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "61cfafd45c41c71941964cd2882ef7294be4d819",
      "new_mode": 33188,
      "new_path": "video/video_source_sink_controller_unittest.cc"
    },
    {
      "type": "modify",
      "old_id": "27aaa93278e40b1d643a7e8441b324f065edc2a3",
      "old_mode": 33188,
      "old_path": "video/video_stream_encoder.cc",
      "new_id": "bdc0324cca90936691d43454bafcdffc707dcf7e",
      "new_mode": 33188,
      "new_path": "video/video_stream_encoder.cc"
    },
    {
      "type": "modify",
      "old_id": "4d4b079715d18045de129b38525b386402b07123",
      "old_mode": 33188,
      "old_path": "video/video_stream_encoder.h",
      "new_id": "6db3d53da0d04720e4889462ca76f355d177ba66",
      "new_mode": 33188,
      "new_path": "video/video_stream_encoder.h"
    }
  ]
}
