webrtc/modules/video_coding
Erik Språng 27a457d172 Smoother frame dropping when screenshare_layers limits fps
This is a reland of https://webrtc-review.googlesource.com/34380

The main problem with that CL was that we used frame timestamps as basis
for frame dropping, but those might not be continuous or even populated
in some circumstances.

Additionally, I found that the bitrate was off since the encoder does
not not take the dropped frames into account, so if we drop every other
frame continiusoly, the bitrate sent will be around half of the target.

Patch set 1 is the original CL, subsequent patch sets cotains fixes.

Bug: webrtc:4172
Change-Id: I8ec8dddcebf4ce44f28dd9055cf9c46bbd68e4a6
Reviewed-on: https://webrtc-review.googlesource.com/39201
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21601}
2018-01-12 14:40:40 +00:00
..
codecs Smoother frame dropping when screenshare_layers limits fps 2018-01-12 14:40:40 +00:00
include Added WEBRTC_VIDEO_CODEC_OK_REQUEST_KEYFRAME decoder return code. 2017-12-19 14:57:41 +00:00
test Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
utility Optional: Use nullopt and implicit construction in /modules/video_coding 2017-11-24 18:36:09 +00:00
BUILD.gn Moved ALR experiment settings to new experiments folder. 2018-01-12 12:03:22 +00:00
codec_database.cc Reland "Add stereo codec header and pass it through RTP" 2017-11-30 01:44:19 +00:00
codec_database.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
codec_timer.cc
codec_timer.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
decoding_state.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
decoding_state.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
decoding_state_unittest.cc
DEPS Moved ALR experiment settings to new experiments folder. 2018-01-12 12:03:22 +00:00
encoded_frame.cc Reland "Add stereo codec header and pass it through RTP" 2017-11-30 01:44:19 +00:00
encoded_frame.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
fec_rate_table.h
frame_buffer.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
frame_buffer.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
frame_buffer2.cc Don't cast picture ids (of type int64_t) to int. 2017-12-14 14:22:13 +00:00
frame_buffer2.h Don't cast picture ids (of type int64_t) to int. 2017-12-14 14:22:13 +00:00
frame_buffer2_unittest.cc Move sequence_number_utils.h to rtc_base/ 2017-10-25 12:33:57 +00:00
frame_object.cc Reland "Add stereo codec header and pass it through RTP" 2017-11-30 01:44:19 +00:00
frame_object.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
generic_decoder.cc Optional: Use nullopt and implicit construction in /modules/video_coding 2017-11-24 18:36:09 +00:00
generic_decoder.h Reland "Update internal SW codecs to return unique_ptrs" 2017-11-13 14:23:58 +00:00
generic_encoder.cc Moved ALR experiment settings to new experiments folder. 2018-01-12 12:03:22 +00:00
generic_encoder.h In generic encoder ensure capture timestamp is preserved. 2017-11-17 16:06:17 +00:00
generic_encoder_unittest.cc In generic encoder ensure capture timestamp is preserved. 2017-11-17 16:06:17 +00:00
h264_sprop_parameter_sets.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
h264_sprop_parameter_sets.h
h264_sprop_parameter_sets_unittest.cc
h264_sps_pps_tracker.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
h264_sps_pps_tracker.h
h264_sps_pps_tracker_unittest.cc Move SPS/PPS/IDR requirement from RtpFrameObject to PacketBuffer. 2017-11-06 12:04:46 +00:00
histogram.cc Move sequence_number_utils.h to rtc_base/ 2017-10-25 12:33:57 +00:00
histogram.h
histogram_unittest.cc
inter_frame_delay.cc
inter_frame_delay.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
internal_defines.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
jitter_buffer.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
jitter_buffer.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
jitter_buffer_common.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
jitter_buffer_unittest.cc Remove unused mocks of process thread 2017-09-28 07:57:28 +00:00
jitter_estimator.cc
jitter_estimator.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
jitter_estimator_tests.cc
media_opt_util.cc
media_opt_util.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
media_optimization.cc Remove use of SetEncodingDataInternal in MediaOptimization. 2017-11-13 12:39:48 +00:00
media_optimization.h Remove use of SetEncodingDataInternal in MediaOptimization. 2017-11-13 12:39:48 +00:00
nack_fec_tables.h
nack_module.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
nack_module.h Move sequence_number_utils.h to rtc_base/ 2017-10-25 12:33:57 +00:00
nack_module_unittest.cc
OWNERS
packet.cc Reland "Add stereo codec header and pass it through RTP" 2017-11-30 01:44:19 +00:00
packet.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
packet_buffer.cc Fix off-by-one error when removing information about missing packet in PacketBuffer. 2017-12-06 12:15:42 +00:00
packet_buffer.h Move SPS/PPS/IDR requirement from RtpFrameObject to PacketBuffer. 2017-11-06 12:04:46 +00:00
protection_bitrate_calculator.cc Revert "Revert "Revert "Add ProtectionBitrateCalculator as an abstract class. ProtectionBitrateCalculatorDefault implements ProtectionBitrateCalculator. Register VideoSendStream to packet feedback""" 2017-12-21 12:26:31 +00:00
protection_bitrate_calculator.h Revert "Revert "Revert "Add ProtectionBitrateCalculator as an abstract class. ProtectionBitrateCalculatorDefault implements ProtectionBitrateCalculator. Register VideoSendStream to packet feedback""" 2017-12-21 12:26:31 +00:00
protection_bitrate_calculator_unittest.cc Revert "Revert "Revert "Add ProtectionBitrateCalculator as an abstract class. ProtectionBitrateCalculatorDefault implements ProtectionBitrateCalculator. Register VideoSendStream to packet feedback""" 2017-12-21 12:26:31 +00:00
qp_parser.cc Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
qp_parser.h
receiver.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
receiver.h
receiver_unittest.cc
rtp_frame_reference_finder.cc Don't cast picture ids (of type int64_t) to int. 2017-12-14 14:22:13 +00:00
rtp_frame_reference_finder.h Don't cast picture ids (of type int64_t) to int. 2017-12-14 14:22:13 +00:00
rtp_frame_reference_finder_unittest.cc Calculate VP9 references to wrap at kPicIdLength instead of 16 bits. 2017-09-28 13:53:38 +00:00
rtt_filter.cc
rtt_filter.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
session_info.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
session_info.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
session_info_unittest.cc
timestamp_map.cc
timestamp_map.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
timing.cc
timing.h Adding NOLINT for typedefs.h and common_types.h 2017-09-15 13:03:51 +00:00
timing_unittest.cc
video_codec_initializer.cc Bug Fix: Peers Cannot Communicate If One With Stereo Codec, One Not 2018-01-08 17:53:39 +00:00
video_codec_initializer_unittest.cc Add optional stereo codec to SDP negotiation 2017-12-11 16:30:06 +00:00
video_coding_impl.cc Delete VCMSendStatisticsCallback and corresponding use of ProcessThread 2017-10-26 08:13:55 +00:00
video_coding_impl.h Delete VCMSendStatisticsCallback and corresponding use of ProcessThread 2017-10-26 08:13:55 +00:00
video_packet_buffer_unittest.cc Fix off-by-one error when removing information about missing packet in PacketBuffer. 2017-12-06 12:15:42 +00:00
video_receiver.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
video_receiver_unittest.cc
video_sender.cc Stop using LOG macros in favor of RTC_ prefixed macros. 2017-11-09 11:56:32 +00:00
video_sender_unittest.cc Reland "Update internal SW codecs to return unique_ptrs" 2017-11-13 14:23:58 +00:00