webrtc/modules/video_coding
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
..
codecs Reland "Launch external ref control for vp9 encoder" 2020-04-23 13:21:45 +00:00
include Delete header file mock_vcm_callbacks.h 2020-02-04 14:20:46 +00:00
test Include module_common_types.h only where needed 2019-09-24 08:22:38 +00:00
utility Asynchronous QualityScaler: Callback-based CheckQpTask. 2020-04-28 09:00:15 +00:00
BUILD.gn Asynchronous QualityScaler: Callback-based CheckQpTask. 2020-04-28 09:00:15 +00:00
codec_timer.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
codec_timer.h Include module_common_types.h only where needed 2019-09-24 08:22:38 +00:00
decoder_database.cc Format almost everything. 2019-07-08 13:45:15 +00:00
decoder_database.h Refactoring PayloadRouter. 2018-07-17 14:46:15 +00:00
decoding_state.cc Concatenate string literals at compile time. 2020-01-14 14:47:48 +00:00
decoding_state.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
decoding_state_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
DEPS Add RTC_EXPORT to VCMEncodedFrame 2020-02-28 16:59:10 +00:00
encoded_frame.cc Delete VCMEncodedFrame::VerifyAndAllocate 2019-10-04 14:16:49 +00:00
encoded_frame.h Add NtpTimeMs as a method in EncodedImage. 2020-03-09 17:00:09 +00:00
event_wrapper.cc Move EventWrapper class to target video_coding_legacy. 2020-03-06 08:39:35 +00:00
event_wrapper.h Move EventWrapper class to target video_coding_legacy. 2020-03-06 08:39:35 +00:00
fec_controller_default.cc Format almost everything. 2019-07-08 13:45:15 +00:00
fec_controller_default.h Format almost everything. 2019-07-08 13:45:15 +00:00
fec_controller_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
fec_rate_table.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
frame_buffer.cc Refactor legacy FrameBuffer to use EncodedImageBuffer::Realloc 2019-09-30 09:48:26 +00:00
frame_buffer.h Refactor legacy FrameBuffer to use EncodedImageBuffer::Realloc 2019-09-30 09:48:26 +00:00
frame_buffer2.cc Use newer version of TimeDelta and TimeStamp factories in modules/ 2020-02-10 11:49:57 +00:00
frame_buffer2.h Remove unused NextFrame function from FrameBuffer. 2020-01-30 12:54:08 +00:00
frame_buffer2_unittest.cc Use newer version of TimeDelta and TimeStamp factories in modules/ 2020-02-10 11:49:57 +00:00
frame_dependencies_calculator.cc Populate generic descriptor based on GenericFrameInfo when available. 2020-02-12 10:55:41 +00:00
frame_dependencies_calculator.h Populate generic descriptor based on GenericFrameInfo when available. 2020-02-12 10:55:41 +00:00
frame_dependencies_calculator_unittest.cc Add helper to calculate frame dependencies based on encoder buffer usage 2020-02-05 16:19:10 +00:00
frame_object.cc Delete deprecated RtpFrameObject constructor 2020-04-02 10:50:57 +00:00
frame_object.h Delete deprecated RtpFrameObject constructor 2020-04-02 10:50:57 +00:00
generic_decoder.cc Add processing time to VideoFrame 2020-01-16 14:11:15 +00:00
generic_decoder.h Add processing time to VideoFrame 2020-01-16 14:11:15 +00:00
generic_decoder_unittest.cc Add processing time to VideoFrame 2020-01-16 14:11:15 +00:00
h264_sprop_parameter_sets.cc Format almost everything. 2019-07-08 13:45:15 +00:00
h264_sprop_parameter_sets.h (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries 2019-01-11 17:11:39 +00:00
h264_sprop_parameter_sets_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
h264_sps_pps_tracker.cc in PacketBuffer::Packet pass payload using smart buffer 2019-12-03 14:55:54 +00:00
h264_sps_pps_tracker.h in PacketBuffer::Packet pass payload using smart buffer 2019-12-03 14:55:54 +00:00
h264_sps_pps_tracker_unittest.cc in PacketBuffer::Packet pass payload using smart buffer 2019-12-03 14:55:54 +00:00
histogram.cc [Cleanup] Add missing #include. Remove useless ones. IWYU part 2. 2018-11-28 18:25:07 +00:00
histogram.h Fixing WebRTC after moving from src/webrtc to src/ 2017-09-15 05:02:56 +00:00
histogram_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
inter_frame_delay.cc Remove unused method in VCMInterFrameDelay. 2019-04-03 07:35:28 +00:00
inter_frame_delay.h Remove unused method in VCMInterFrameDelay. 2019-04-03 07:35:28 +00:00
internal_defines.h Remove unused defines and methods in internal_defines.h 2019-01-28 10:31:40 +00:00
jitter_buffer.cc Trim dependencies in modules/video_coding/ 2019-09-11 09:31:10 +00:00
jitter_buffer.h Move EventWrapper class to target video_coding_legacy. 2020-03-06 08:39:35 +00:00
jitter_buffer_common.h Format almost everything. 2019-07-08 13:45:15 +00:00
jitter_buffer_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
jitter_estimator.cc Format almost everything. 2019-07-08 13:45:15 +00:00
jitter_estimator.h Add cap to video jitter buffer size/latency in experiment branches only. 2019-06-04 15:50:27 +00:00
jitter_estimator_tests.cc Use std::make_unique instead of absl::make_unique. 2019-09-17 15:47:29 +00:00
loss_notification_controller.cc Detach LossNotificationController from RtpGenericFrameDescriptor 2020-01-24 11:53:28 +00:00
loss_notification_controller.h Detach LossNotificationController from RtpGenericFrameDescriptor 2020-01-24 11:53:28 +00:00
loss_notification_controller_unittest.cc Detach LossNotificationController from RtpGenericFrameDescriptor 2020-01-24 11:53:28 +00:00
media_opt_util.cc Stop checking VP8BaseHeavyTl3RateAllocation field trial on every frame. 2019-11-04 13:50:59 +00:00
media_opt_util.h Stop checking VP8BaseHeavyTl3RateAllocation field trial on every frame. 2019-11-04 13:50:59 +00:00
nack_module.cc Use newer version of TimeDelta and TimeStamp factories in modules/ 2020-02-10 11:49:57 +00:00
nack_module.h Add exponential backoff of retransmissions for a given packet 2019-10-28 10:06:23 +00:00
nack_module_unittest.cc Use newer version of TimeDelta and TimeStamp factories in modules/ 2020-02-10 11:49:57 +00:00
OWNERS Remove wildcard ownership for build files. 2020-02-19 14:05:46 +00:00
packet.cc Add plumbing of RtpPacketInfos to each VideoFrame as input for SourceTracker. 2019-06-20 10:24:29 +00:00
packet.h Add plumbing of RtpPacketInfos to each VideoFrame as input for SourceTracker. 2019-06-20 10:24:29 +00:00
packet_buffer.cc In PacketBuffer simplify stored buffer. 2020-03-20 13:32:32 +00:00
packet_buffer.h In PacketBuffer simplify stored buffer. 2020-03-20 13:32:32 +00:00
packet_buffer_unittest.cc Move AssembleFrame from PacketBuffer to RtpVideoStreamReceiver 2020-03-19 16:35:14 +00:00
receiver.cc Concatenate string literals at compile time. 2020-01-14 14:47:48 +00:00
receiver.h Move EventWrapper class to target video_coding_legacy. 2020-03-06 08:39:35 +00:00
receiver_unittest.cc Move EventWrapper class to target video_coding_legacy. 2020-03-06 08:39:35 +00:00
rtp_frame_reference_finder.cc Clean up old GoPs when the RTP sequence number jump. 2020-04-17 14:33:45 +00:00
rtp_frame_reference_finder.h Detach RtpFrameReferenceFinder from RtpGenericFrameDescriptor 2020-01-29 12:36:10 +00:00
rtp_frame_reference_finder_unittest.cc Clean up old GoPs when the RTP sequence number jump. 2020-04-17 14:33:45 +00:00
rtt_filter.cc Fix typo in VCMRttFilter 2018-01-26 10:59:56 +00:00
rtt_filter.h Delete root header file typedef.h. 2018-07-25 14:59:26 +00:00
session_info.cc Trim dependencies in modules/video_coding/ 2019-09-11 09:31:10 +00:00
session_info.h Format almost everything. 2019-07-08 13:45:15 +00:00
session_info_unittest.cc Include module_common_types.h only where needed 2019-09-24 08:22:38 +00:00
timestamp_map.cc Format almost everything. 2019-07-08 13:45:15 +00:00
timestamp_map.h Remove unimplemented function declarations VCMGenericDecoder::External and VCMTimestampMap::Reset. 2018-09-06 09:05:30 +00:00
timing.cc Format almost everything. 2019-07-08 13:45:15 +00:00
timing.h Include module_common_types.h only where needed 2019-09-24 08:22:38 +00:00
timing_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
unique_timestamp_counter.cc Split out counting unique rtp timestamps from packet_buffer 2019-10-30 15:27:48 +00:00
unique_timestamp_counter.h Split out counting unique rtp timestamps from packet_buffer 2019-10-30 15:27:48 +00:00
unique_timestamp_counter_unittest.cc Split out counting unique rtp timestamps from packet_buffer 2019-10-30 15:27:48 +00:00
video_codec_initializer.cc [Video, Svc] Remove inactive spatial layers in codec initializer 2020-04-14 09:37:44 +00:00
video_codec_initializer_unittest.cc Make RtpEncodingParameters to not reverse active flags order 2020-02-05 17:36:26 +00:00
video_coding_defines.cc Fix frames dropped statistics 2019-08-27 07:43:01 +00:00
video_coding_impl.cc Delete deprecated method VideoCodingModule::SetReceiverRobustnessMode 2019-06-12 06:39:38 +00:00
video_coding_impl.h Remove seemingly unused timer 2020-04-03 11:17:02 +00:00
video_receiver.cc Remove seemingly unused timer 2020-04-03 11:17:02 +00:00
video_receiver2.cc Add processing time to VideoFrame 2020-01-16 14:11:15 +00:00
video_receiver2.h Delete VideoReceiver2::TriggerDecoderShutdown. 2019-09-12 13:44:13 +00:00
video_receiver_unittest.cc Delete header file mock_vcm_callbacks.h 2020-02-04 14:20:46 +00:00