commit | 453953c9eb3f599ff8936522b7fc0124d46b84e1 | [log] [tgz] |
---|---|---|
author | Henrik Boström <hbos@webrtc.org> | Sat Mar 14 09:53:57 2020 |
committer | Commit Bot <commit-bot@chromium.org> | Sat Mar 14 11:29:03 2020 |
tree | 0c5066c07104969553ee6ba5633928d463263696 | |
parent | 630917c39806de202caa509166d116af2fc5484b [diff] |
[Adaptation] Refactor AdaptationTarget. Peek next restrictions. This CL introduces the Adaptation class used by VideoStreamRestrictor. This refactors the AdaptationTarget, AdaptationTargetOrReason, CannotAdaptReason and AdaptationAction. What is publicly exposed is simply a Status code. If it's kValid then we can adapt, otherwise the status code describes why we can't adapt (just like CannotAdaptReason prior to this CL). This means AdaptationTargetOrReason is no longer needed. Target+reason are merged. The other classes are renamed and moved and put in the private namespace of Adaptation: Only the VideoStreamAdapter (now a friend class of Adaptation) and its inner class VideoSourceRestrictor needs to know how to execute the adaptation. Publicly, you can now tell the effects of the adaptation without applying it with PeekNextRestrictions() - both current and next steps are described in terms of VideoSourceRestrictions. The rest are hidden. This would make it possible, in the future, for a Resource to accept or reject a proposed Adaptation by examining the resulting frame rate and resolution described by the resulting restrictions. E.g. even if we are not overusing bandwidth at the moment, the BW resource can prevent us from applying a restriction that would exceed the BW limit before we apply it. This CL also moves input to a SetInput() method, and Increase/Decrease methods of VideoSourceRestrictor are made private in favor of ApplyAdaptationSteps(). Bug: webrtc:11393 Change-Id: Ie5e2181836ab3713b8021c1a152694ca745aeb0d Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/170111 Commit-Queue: Henrik Boström <hbos@webrtc.org> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org> Reviewed-by: Evan Shrubsole <eshr@google.com> Cr-Commit-Position: refs/heads/master@{#30794}
WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.
Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.
The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.
See http://www.webrtc.org/native-code/development for instructions on how to get started developing with the native code.
Authoritative list of directories that contain the native API header files.