No description
Find a file
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
api sdp: backfill default codec parameters for AV1 2024-02-01 13:11:09 +00:00
audio Adds WebRTC-Audio-PriorityBitrate for controlling audio/video rate allocation 2024-01-30 03:15:04 +00:00
build_overrides Roll chromium_revision 01dc2965ca..917876224a (1209117:1211391) 2023-10-18 15:15:07 +00:00
call Update WebRTC code version (2024-01-30T04:07:38). 2024-01-30 05:34:55 +00:00
common_audio Fix pointer overflow in neon implemenation of audio filters 2023-10-13 06:41:08 +00:00
common_video Fix H.265 bitstream parser incorrect PPS reference. 2024-01-31 06:54:00 +00:00
data Remove old data files. 2018-10-05 14:40:21 +00:00
docs Fix links 2024-01-12 16:39:54 +00:00
examples Detangle p2p/connection.cc and port.cc 2024-01-26 08:29:27 +00:00
experiments Add WebRTC-LibaomAv1Encoder-MaxConsecFrameDrop parameter to explicitly limit the maximum consecutive frame drop 2024-01-31 18:35:51 +00:00
g3doc Update TODO example in the style guide. 2023-11-21 23:11:09 +00:00
infra Run video_codec_perf_tests using the quick mode on Android try bots. 2024-01-16 10:07:48 +00:00
logging Rename kLocal to kHost and kStun to kSrflx 2024-02-01 12:31:08 +00:00
media sdp: backfill default codec parameters for AV1 2024-02-01 13:11:09 +00:00
modules Ignore old, duplicate and overlapping packets in packet arrival history. 2024-02-01 15:05:19 +00:00
net/dcsctp Fixing unspecified evaluation order of std:move(), to avoid future issues. 2024-01-16 08:53:28 +00:00
p2p Remove SOCKS5 support 2024-02-01 14:43:30 +00:00
pc sdp: backfill default codec parameters for AV1 2024-02-01 13:11:09 +00:00
resources Ignore .binarypb files. 2023-10-30 14:56:36 +00:00
rtc_base Remove SOCKS5 support 2024-02-01 14:43:30 +00:00
rtc_tools Rename kLocal to kHost and kStun to kSrflx 2024-02-01 12:31:08 +00:00
sdk iOS: Fix building tests on real devices 2024-01-24 15:10:25 +00:00
stats [Stats] Migrate from the RTCStatsMember type alias to absl::optional. 2024-01-25 21:56:08 +00:00
system_wrappers Use //third_party/cpu_features directly 2023-06-02 07:17:36 +00:00
test Remove post-decode VAD 2024-02-01 12:37:23 +00:00
tools_webrtc Add disable_trace_events compilation 2024-01-08 11:01:30 +00:00
video Do not register receiver for REMB until it starts receiving 2024-01-31 12:47:10 +00:00
.clang-format Add IncludeBlocks to clang-format. 2021-02-03 16:29:07 +00:00
.git-blame-ignore-revs Add formatting CLs to .git-blame-ignore-revs 2023-05-07 09:27:47 +00:00
.gitignore Add .cache to .gitignore. 2021-01-20 15:01:07 +00:00
.gn [Fuchsia] Remove fuchsia_target_api_level from .gn 2023-09-04 07:26:36 +00:00
.mailmap Add .mailmap for git. 2022-02-20 14:22:13 +00:00
.style.yapf Configure YAPF to follow PEP-8 altogether 2023-09-22 10:32:11 +00:00
.vpython3 Update to vpython 3.11 and remove .vpython (v2.x) 2024-01-25 11:12:20 +00:00
AUTHORS Expose setCodecPreferences/getCapabilities for iOS 2024-01-23 13:54:26 +00:00
BUILD.gn Add environment_construction poison 2023-11-27 11:44:50 +00:00
CODE_OF_CONDUCT.md Reland "Migrate WebRTC documentation to new renderer" 2023-01-31 09:30:04 +00:00
codereview.settings Don't add webrtc-reviews@ to CC, it can be added globally on Gerrit 2018-10-25 08:19:53 +00:00
DEPS Roll chromium_revision 712952759e..844caa73fd (1251936:1252127) 2024-01-25 16:50:41 +00:00
DIR_METADATA Move metadata in OWNERS files to DIR_METADATA files. 2021-02-08 19:09:33 +00:00
ENG_REVIEW_OWNERS Remove phoglund from ENG_REVIEW_OWNERS 2021-10-08 08:29:42 +00:00
LICENSE Moving src/webrtc into src/. 2017-09-15 04:25:06 +00:00
license_template.txt
native-api.md Reland "Migrate WebRTC documentation to new renderer" 2023-01-31 09:30:04 +00:00
OWNERS Add infra owners file 2022-12-02 09:21:47 +00:00
OWNERS_INFRA Allow to keep old python style for existing files. 2023-10-17 13:52:56 +00:00
PATENTS Moving src/webrtc into src/. 2017-09-15 04:25:06 +00:00
PRESUBMIT.py Implement Newline Check in the Presubmit 2024-01-23 07:50:56 +00:00
presubmit_test.py tools_webrtc dir converted to py3 + top level PRESUBMIT script 2022-02-08 14:42:26 +00:00
presubmit_test_mocks.py tools_webrtc dir converted to py3 + top level PRESUBMIT script 2022-02-08 14:42:26 +00:00
pylintrc Configure Pylint to follow PEP-8 2023-09-25 15:56:09 +00:00
pylintrc_old_style Allow to keep old python style for existing files. 2023-10-17 13:52:56 +00:00
README.chromium [ssci] Added Shipped field to READMEs 2023-07-12 07:31:06 +00:00
README.md doc: Follow up link rename in I2dbe1ef0c74a0de8c5619b522fab39527e797d9c 2023-05-26 09:20:16 +00:00
WATCHLISTS Remove xooglers from WATCHLISTS and OWNERS 2022-11-30 15:33:25 +00:00
webrtc.gni Add environment_construction poison 2023-11-27 11:44:50 +00:00
webrtc_lib_link_test.cc Deprecate RtcEventLogFactory constructor taking unused parameter 2023-12-07 21:46:56 +00:00
whitespace.txt Revert "Test new tree." 2024-01-31 08:50:04 +00:00

WebRTC is a free, open software project that provides browsers and mobile applications with Real-Time Communications (RTC) capabilities via simple APIs. The WebRTC components have been optimized to best serve this purpose.

Our mission: To enable rich, high-quality RTC applications to be developed for the browser, mobile platforms, and IoT devices, and allow them all to communicate via a common set of protocols.

The WebRTC initiative is a project supported by Google, Mozilla and Opera, amongst others.

Development

See here for instructions on how to get started developing with the native code.

Authoritative list of directories that contain the native API header files.

More info