webrtc/modules/video_coding
Rezaul Barbhuiya 82c2248511 Calculate pacing delay based on decode start time
Schedule the frames to be decoded based on the pacing delay from the
last decode scheduled time. In the current implementation, multiple
threads and different functions in same thread can call
MaxWaitingTime(), thereby increasing the wait time each time the
function is called. Instead of returning the wait time for a future
frame based on the number of times the function is called, return the
wait time only for the next frame to be decoded. Threads can call the
function repeatedly to check the waiting time for next frame and wake
up and then go back to waiting if an encoded frame is not available.

Change-Id: I00886c1619599f94bde5d5eb87405572e435bd73
Bug: chromium:1237402
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/226502
Reviewed-by: Johannes Kron <kron@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34660}
2021-08-06 11:25:17 +00:00
..
codecs Revert "Enable WebRTC-Vp9DependencyDescriptor by default" 2021-08-02 09:52:24 +00:00
deprecated NackModule2: Rename to NackRequester. 2021-07-23 08:30:33 +00:00
g3doc Update links to point at main branch 2021-07-22 16:41:26 +00:00
include Replace RTC_DEPRECATED with ABSL_DEPRECATED 2021-02-22 12:53:23 +00:00
svc Add fuzzer to validate libvpx vp9 encoder wrapper 2021-04-21 14:29:04 +00:00
test Include module_common_types.h only where needed 2019-09-24 08:22:38 +00:00
utility Use **** code for codec of unknown type 2021-07-23 21:04:59 +00:00
BUILD.gn Delete legacy forwarding header svc_rate_allocator.h 2021-07-28 08:54:03 +00:00
chain_diff_calculator.cc Introduce ChainDiffCalculator 2020-05-18 14:22:44 +00:00
chain_diff_calculator.h Introduce ChainDiffCalculator 2020-05-18 14:22:44 +00:00
chain_diff_calculator_unittest.cc Introduce ChainDiffCalculator 2020-05-18 14:22:44 +00:00
codec_timer.cc
codec_timer.h Include module_common_types.h only where needed 2019-09-24 08:22:38 +00:00
decoder_database.cc Delay creation of decoders until they are needed 2021-02-19 12:08:49 +00:00
decoder_database.h Delay creation of decoders until they are needed 2021-02-19 12:08:49 +00:00
decoding_state.cc Replace assert() with RTC_DCHECK(). 2021-07-09 07:49:43 +00:00
decoding_state.h Adds missing header to fix compilation error when compiling with use_custom_libcxx set to false. 2021-03-25 09:57:00 +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 VCMEncodedFrame: add basic support for AV1. 2021-03-30 11:45:00 +00:00
encoded_frame.h Delete unowned buffer in EncodedImage. 2021-03-19 14:12:28 +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 Migrate modules/video_coding to webrtc::Mutex. 2020-07-07 11:41:21 +00:00
fec_controller_default.h Migrate modules/video_coding to webrtc::Mutex. 2020-07-07 11:41:21 +00:00
fec_controller_unittest.cc Format almost everything. 2019-07-08 13:45:15 +00:00
fec_rate_table.h
frame_buffer.cc Remove all #include <assert.h>/<cassert> and usage in Obj-C code. 2021-07-22 14:00:26 +00:00
frame_buffer.h Refactor legacy FrameBuffer to use EncodedImageBuffer::Realloc 2019-09-30 09:48:26 +00:00
frame_buffer2.cc Calculate pacing delay based on decode start time 2021-08-06 11:25:17 +00:00
frame_buffer2.h Prepare to replace VideoLayerFrameId with int64_t. 2021-02-15 14:42:02 +00:00
frame_buffer2_unittest.cc Calculate pacing delay based on decode start time 2021-08-06 11:25:17 +00:00
frame_dependencies_calculator.cc Ignore frame type when calculating generic frame dependencies. 2020-11-23 10:52:06 +00:00
frame_dependencies_calculator.h Ignore frame type when calculating generic frame dependencies. 2020-11-23 10:52:06 +00:00
frame_dependencies_calculator_unittest.cc Ignore frame type when calculating generic frame dependencies. 2020-11-23 10:52:06 +00:00
frame_object.cc Send and Receive VideoFrameTrackingid RTP header extension. 2021-03-25 21:57:29 +00:00
frame_object.h Clean up video_coding namespace snipets. 2021-03-25 10:44:40 +00:00
generic_decoder.cc Add timestamp to log message in generic_decoder.cc 2021-06-17 10:14:14 +00:00
generic_decoder.h Fix dropped frames not counted issue 2021-04-09 14:47:52 +00:00
generic_decoder_unittest.cc Signaling for low-latency renderer algorithm 2020-10-26 15:03:56 +00:00
h264_sprop_parameter_sets.cc Format almost everything. 2019-07-08 13:45:15 +00:00
h264_sprop_parameter_sets.h
h264_sprop_parameter_sets_unittest.cc Fully qualify googletest symbols. 2019-04-09 17:18:20 +00:00
h264_sps_pps_tracker.cc H264: Fix stap-a-to-annex-b loop over-read 2020-06-24 21:54:45 +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
histogram.h
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
jitter_buffer.cc Remove all #include <assert.h>/<cassert> and usage in Obj-C code. 2021-07-22 14:00:26 +00:00
jitter_buffer.h Migrate modules/video_coding to webrtc::Mutex. 2020-07-07 11:41:21 +00:00
jitter_buffer_common.h Format almost everything. 2019-07-08 13:45:15 +00:00
jitter_buffer_unittest.cc Use Timestamp to represent packet receive timestamps 2021-05-04 13:16:54 +00:00
jitter_estimator.cc Remove all #include <assert.h>/<cassert> and usage in Obj-C code. 2021-07-22 14:00:26 +00:00
jitter_estimator.h Add option to disable reduced jitter delay through field trial. 2020-05-19 11:51:29 +00:00
jitter_estimator_tests.cc Add option to disable reduced jitter delay through field trial. 2020-05-19 11:51:29 +00:00
loss_notification_controller.cc Detach LossNotificationController from RtpGenericFrameDescriptor 2020-01-24 11:53:28 +00:00
loss_notification_controller.h Use SequenceChecker from public API 2021-02-10 15:04:55 +00:00
loss_notification_controller_unittest.cc Detach LossNotificationController from RtpGenericFrameDescriptor 2020-01-24 11:53:28 +00:00
media_opt_util.cc Remove all #include <assert.h>/<cassert> and usage in Obj-C code. 2021-07-22 14:00:26 +00:00
media_opt_util.h Stop checking VP8BaseHeavyTl3RateAllocation field trial on every frame. 2019-11-04 13:50:59 +00:00
nack_module_unittest.cc Deprecate webrtc::NackModule. 2020-05-30 16:34:44 +00:00
nack_requester.cc NackModule2: Rename to NackRequester. 2021-07-23 08:30:33 +00:00
nack_requester.h NackModule2: Rename to NackRequester. 2021-07-23 08:30:33 +00:00
nack_requester_unittest.cc NackModule2: Rename to NackRequester. 2021-07-23 08:30:33 +00:00
OWNERS Remove wildcard ownership for build files. 2020-02-19 14:05:46 +00:00
packet.cc Use Timestamp to represent packet receive timestamps 2021-05-04 13:16:54 +00:00
packet.h Use Timestamp to represent packet receive timestamps 2021-05-04 13:16:54 +00:00
packet_buffer.cc Don't store RtpPacketInfo in the PacketBuffer. 2021-05-11 10:37:46 +00:00
packet_buffer.h Don't store RtpPacketInfo in the PacketBuffer. 2021-05-11 10:37:46 +00:00
packet_buffer_unittest.cc Track last packet receive times in RtpVideoStreamReceiver instead of the PacketBuffer. 2021-04-13 18:24:45 +00:00
receiver.cc Remove all #include <assert.h>/<cassert> and usage in Obj-C code. 2021-07-22 14:00:26 +00:00
receiver.h Remove unused critical section includes. 2020-07-16 13:52:28 +00:00
receiver_unittest.cc Remove unused members in tests. 2021-04-12 07:21:03 +00:00
rtp_frame_id_only_ref_finder.cc Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_frame_id_only_ref_finder.h Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_frame_reference_finder.cc RtpFrameReferenceFinder return frames directly instead of via callback. 2021-05-26 15:47:03 +00:00
rtp_frame_reference_finder.h RtpFrameReferenceFinder return frames directly instead of via callback. 2021-05-26 15:47:03 +00:00
rtp_frame_reference_finder_unittest.cc RtpFrameReferenceFinder return frames directly instead of via callback. 2021-05-26 15:47:03 +00:00
rtp_generic_ref_finder.cc Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_generic_ref_finder.h Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_seq_num_only_ref_finder.cc Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_seq_num_only_ref_finder.h Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_vp8_ref_finder.cc Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_vp8_ref_finder.h Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_vp8_ref_finder_unittest.cc Move RtpFrameObject and EncodedFrame out of video_coding namespace. 2021-03-23 14:22:47 +00:00
rtp_vp9_ref_finder.cc Always unwrap VP9 TL0PicIdx forward if the frame is newer. 2021-07-20 09:34:59 +00:00
rtp_vp9_ref_finder.h Always unwrap VP9 TL0PicIdx forward if the frame is newer. 2021-07-20 09:34:59 +00:00
rtp_vp9_ref_finder_unittest.cc Always unwrap VP9 TL0PicIdx forward if the frame is newer. 2021-07-20 09:34:59 +00:00
rtt_filter.cc
rtt_filter.h
session_info.cc Remove all #include <assert.h>/<cassert> and usage in Obj-C code. 2021-07-22 14:00:26 +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 Fix dropped frames not counted issue 2021-04-09 14:47:52 +00:00
timestamp_map.h Fix dropped frames not counted issue 2021-04-09 14:47:52 +00:00
timestamp_map_unittest.cc Fix dropped frames not counted issue 2021-04-09 14:47:52 +00:00
timing.cc Calculate pacing delay based on decode start time 2021-08-06 11:25:17 +00:00
timing.h Calculate pacing delay based on decode start time 2021-08-06 11:25:17 +00:00
timing_unittest.cc Calculate pacing delay based on decode start time 2021-08-06 11:25:17 +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 Make AV1 respect spatial layer active flag. 2021-06-01 16:07:25 +00:00
video_codec_initializer_unittest.cc Make AV1 respect spatial layer active flag. 2021-06-01 16:07:25 +00:00
video_coding_defines.cc Fix frames dropped statistics 2019-08-27 07:43:01 +00:00
video_coding_impl.cc Use SequenceChecker from public API 2021-02-10 15:04:55 +00:00
video_coding_impl.h Use SequenceChecker from public API 2021-02-10 15:04:55 +00:00
video_receiver.cc Use Timestamp to represent packet receive timestamps 2021-05-04 13:16:54 +00:00
video_receiver2.cc Delay creation of decoders until they are needed 2021-02-19 12:08:49 +00:00
video_receiver2.h Delay creation of decoders until they are needed 2021-02-19 12:08:49 +00:00
video_receiver_unittest.cc Prepare for deleting VideoCodec::plType 2020-08-11 14:20:59 +00:00