webrtc/modules/video_coding/utility
Henrik Boström 012aa375b1 Asynchronous QualityScaler: Callback-based CheckQpTask.
This CL breaks up the CheckQp() operation into several steps managed
by the inner helper class CheckQpTask, making responding to high or
low QP an asynchronous operation. Why? Reconfiguring the stream in
response to QP overuse will in the future be handled on a separate
task queue. See Call-Level Adaptation Processing for more details:
https://docs.google.com/document/d/1ZyC26yOCknrrcYa839ZWLxD6o6Gig5A3lVTh4E41074/edit?usp=sharing

Instead of "bool AdaptDown()" when high QP is reported,
synchronously returning true or false depending on the result of
adaptation, this CL introduces
  void QualityScalerQpUsageHandlerInterface::OnReportQpUsageHigh(
      rtc::scoped_refptr<QualityScalerQpUsageHandlerCallback>);
Where
  QualityScalerQpUsageHandlerCallback::OnQpUsageHandled(
      bool clear_qp_samples);
Instructs the QualityScaler whether to clear samples before
checking QP the next time or to increase the frequency of checking
(corresponding to AdaptDown's return value prior to this CL).

QualityScaler no longer using AdaptationObserverInterface, this class
is renamed and moved to overuse_frame_detector.h.

The dependency between CheckQpTasks is made explicit with
CheckQpTask::Result and variables like observed_enough_frames_,
adapt_called_ and adapt_failed_ are moved there and given more
descriptive names.

Bug: webrtc:11521
Change-Id: I7faf795aeee5ded18ce75eb1617f88226e337228
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173760
Reviewed-by: Evan Shrubsole <eshr@google.com>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31140}
2020-04-28 09:00:15 +00:00
..
decoded_frames_history.cc DecodeFrameHistory can now deal with negative picture IDs. 2019-03-19 10:57:06 +00:00
decoded_frames_history.h Format almost everything. 2019-07-08 13:45:15 +00:00
decoded_frames_history_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
frame_dropper.cc Remove unused MockFrameDropper and make FrameDropper non-virtual. 2018-09-03 14:19:17 +00:00
frame_dropper.h Remove unused MockFrameDropper and make FrameDropper non-virtual. 2018-09-03 14:19:17 +00:00
frame_dropper_unittest.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
framerate_controller.cc Format almost everything. 2019-07-08 13:45:15 +00:00
framerate_controller.h [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
framerate_controller_unittest.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
ivf_file_reader.cc Reland "Add IvfVideoFrameGenerator" 2019-11-26 09:56:47 +00:00
ivf_file_reader.h Reland "Add IvfVideoFrameGenerator" 2019-11-26 09:56:47 +00:00
ivf_file_reader_unittest.cc Introduce IVF file reader 2019-11-20 13:20:56 +00:00
ivf_file_writer.cc Improve bitstream dumping logic to handle multiple SLs correctly 2019-10-08 11:55:19 +00:00
ivf_file_writer.h Improve bitstream dumping logic to handle multiple SLs correctly 2019-10-08 11:55:19 +00:00
ivf_file_writer_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
quality_scaler.cc Asynchronous QualityScaler: Callback-based CheckQpTask. 2020-04-28 09:00:15 +00:00
quality_scaler.h Asynchronous QualityScaler: Callback-based CheckQpTask. 2020-04-28 09:00:15 +00:00
quality_scaler_unittest.cc Asynchronous QualityScaler: Callback-based CheckQpTask. 2020-04-28 09:00:15 +00:00
simulcast_rate_allocator.cc Replace DataSize and DataRate factories with newer versions 2020-02-18 16:09:50 +00:00
simulcast_rate_allocator.h Stop checking VP8BaseHeavyTl3RateAllocation field trial on every frame. 2019-11-04 13:50:59 +00:00
simulcast_rate_allocator_unittest.cc Replace DataSize and DataRate factories with newer versions 2020-02-18 16:09:50 +00:00
simulcast_test_fixture_impl.cc Reland "Add support for RtpEncodingParameters::max_framerate" 2019-12-06 15:11:54 +00:00
simulcast_test_fixture_impl.h Format almost everything. 2019-07-08 13:45:15 +00:00
simulcast_utility.cc Remove WebRTC-ExperimentalScreenshareSettings. 2020-04-16 18:15:08 +00:00
simulcast_utility.h Fix vp8 simulcast screenshare and perf tests for it 2019-02-27 09:59:12 +00:00
vp8_header_parser.cc Clean VP8 header parser 2020-03-02 15:05:48 +00:00
vp8_header_parser.h Clean VP8 header parser 2020-03-02 15:05:48 +00:00
vp9_uncompressed_header_parser.cc (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
vp9_uncompressed_header_parser.h