commit | fae6f0e87ba7c53490a462c75e4c458a5feda966 | [log] [tgz] |
---|---|---|
author | Henrik Boström <hbos@webrtc.org> | Mon Jan 20 10:16:50 2020 |
committer | Commit Bot <commit-bot@chromium.org> | Mon Jan 20 12:58:38 2020 |
tree | 62356d8fdbffd45f2c8efa89375d43dc38e06ef2 | |
parent | cee751abff598fc19506f77de08bea7c61b9dcca [diff] |
[Overuse] MaybeUpdateTargetFrameRate() & ResetVideoSourceRestrictions() This CL does two things for the sake of getting us closer to adaptation modules being injectable and usable without knowing implementation details. Firstly, RefreshTargetFramerate() is removed. The target frame rate is dependent on two things: 1) the codec max frame rate, and 2) the video source restrictions. If either of these two changes, the target frame rate is updated - there is no need to trigger this externally; the module already knows if either of these factors change. The private method MaybeUpdateTargetFrameRate() is added to ensure overuse_detector->OnTargetFramerateUpdated() happens when necessary. In doing this, the frame rates are updated to use absl::optional<double>. This documents its optionality and avoids magical values (previously -1 was not a bug but meaning "missing"). It also matches VideoSourceRestrictions::max_frame_rate()'s type. Secondly, ResetAdaptationCounters() is renamed ResetVideoSourceRestrictions(). This more accurately describes what it is doing; it is resetting the restrictions (the adaptation counters getting reset is merely an implementation specific side-effect of this). This method is added to the generic interface. The usefulness of being able to ResetVideoSourceRestrictions() is questioned in a TODO - current usage of this is when "quality rampup" finishes. Nevertheless, any module could implement this functionality so it belongs to the interface for now. Bug: webrtc:11222 Change-Id: I079785df55fc9894e85087ec98be3e4ebd0713c5 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/166522 Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org> Reviewed-by: Evan Shrubsole <eshr@google.com> Commit-Queue: Henrik Boström <hbos@webrtc.org> Cr-Commit-Position: refs/heads/master@{#30320}
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.