webrtc/modules
Jakob Ivarsson 53e41a2bc6 Ignore old, duplicate and overlapping packets in packet arrival history.
This should mostly be a noop, but in a follow up cl we will insert all
packets after splitting, which will allow for adapting the delay to FEC
(both RED and codec inband) that is useful for decoding (i.e. not
already covered by primary packets).

A slight behavior change is that reordered packets are no longer
included in max delay calculation.

Implementation details:
- A map ordered by RTP timestamp is used to store the arrivals.
- When inserting new packets, we check if the timestamp is too old, already exists or if the packet is fully covered by another packet (based on timestamp and packet duration).
- Separate deques are used to keep track of "min" and "max" arrivals (as defined by ordering operators). The queues maintain a strictly increasing/decreasing order so that min/max is always at begin().

Bug: webrtc:13322
Change-Id: I8b6cf5afff77b4adc3c29745b95627e955715b5a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/337184
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#41656}
2024-02-01 15:05:19 +00:00
..
async_audio_processing Updating AsyncAudioProcessing API, part 1. 2023-05-31 14:40:35 +00:00
audio_coding Ignore old, duplicate and overlapping packets in packet arrival history. 2024-02-01 15:05:19 +00:00
audio_device Record audio timestamps from iOS. 2024-01-19 12:35:53 +00:00
audio_mixer Fix AudioMixer histogram test 2023-10-17 10:13:54 +00:00
audio_processing Remove dependency on rtc::TaskQueue in AudioProcessing module 2024-01-17 18:12:16 +00:00
congestion_controller Fixing a crash in SendSideBandwidthEstmation 2024-01-16 20:42:51 +00:00
desktop_capture Disable the use of CGDisplayStreamCreate() for desktop capture on Sonoma 2024-01-18 15:56:40 +00:00
include [Unwrap] Delete webrtc::Unwrapper 2023-01-12 14:44:21 +00:00
pacing Introduce RtpTransportConfig:allow_bandwidht_estimation_probe_without_media 2024-01-29 07:41:32 +00:00
portal Use a constant for invalid PipeWire file descriptor 2023-05-26 11:38:49 +00:00
remote_bitrate_estimator Remove DCHECK when transport feedback on request can't be produced 2023-12-11 11:15:47 +00:00
rtp_rtcp Add RTP depacketizer for H265 2024-01-29 12:00:19 +00:00
third_party [ssci] Added Shipped field to READMEs 2023-07-12 07:31:06 +00:00
utility Rland "Revert "Reland "Reland "Delete old Android ADM."""" 2023-06-30 13:10:12 +00:00
video_capture Allow VideoCaptureModulePipeWire to be shared with more consumers 2024-01-31 10:07:20 +00:00
video_coding Add WebRTC-LibaomAv1Encoder-MaxConsecFrameDrop parameter to explicitly limit the maximum consecutive frame drop 2024-01-31 18:35:51 +00:00
BUILD.gn [WebRTC-SendPacketsOnWorkerThread] Delete MaybeWorkerThread 2023-04-18 07:07:02 +00:00
module_common_types_unittest.cc [Unwrap] Delete webrtc::Unwrapper 2023-01-12 14:44:21 +00:00