No description
Find a file
Tomas Gunnarsson f554b3c577 Remove thread hops from events provided by JsepTransportController.
Events associated with Subscribe* methods in JTC had trampolines that
would use an async invoker to fire the events on the signaling thread.
This was being done for the purposes of PeerConnection but the concept
of a signaling thread is otherwise not applicable to JTC and use of
JTC from PC is inconsistent across threads (as has been flagged in
webrtc:9987).

This change makes all CallbackList members only accessible from the
network thread and moves the signaling thread related work over to
PeerConnection, which makes hops there more visible as well as making
that class easier to refactor for thread efficiency.

This CL removes the AsyncInvoker from JTC (webrtc:12339)

The signaling_thread_ variable is also removed from JTC and more thread
checks added to catch errors.

Bug: webrtc:12427, webrtc:11988, webrtc:12339
Change-Id: Id232aedd00dfd5403b2ba0ca147d3eca7c12c7c5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/206062
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#33195}
2021-02-08 17:52:01 +00:00
api Fix unsynchronized access to mid_to_transport_ in JsepTransportController 2021-02-08 14:45:25 +00:00
audio Reland "Fix data race for config_ in AudioSendStream" 2021-02-04 12:33:56 +00:00
build_overrides [build] Remove obsolete gn flag 2021-01-11 17:57:44 +00:00
call Update WebRTC code version (2021-02-08T04:03:13). 2021-02-08 05:18:08 +00:00
common_audio Remove from chromium build targets that are not compatible with it. 2021-02-01 13:46:19 +00:00
common_video Replace rtc::ThreadChecker with webrtc::SequenceChecker 2021-02-02 14:56:27 +00:00
data Remove old data files. 2018-10-05 14:40:21 +00:00
docs doc: update working-with-native-branches information 2020-12-16 09:02:46 +00:00
examples Replace rtc::ThreadChecker with webrtc::SequenceChecker 2021-02-02 14:56:27 +00:00
logging Parse and plot RTCP BYE in RTC event log. 2021-02-04 11:28:46 +00:00
media Reland "Prepare to avoid hops to worker for network events." 2021-02-03 17:44:47 +00:00
modules Avoid crashing on error code 6450 in isac. 2021-02-08 16:16:55 +00:00
p2p Use callback_list for port destroy operation. 2021-02-04 16:34:02 +00:00
pc Remove thread hops from events provided by JsepTransportController. 2021-02-08 17:52:01 +00:00
resources Remove from chromium build targets that are not compatible with it. 2021-02-01 13:46:19 +00:00
rtc_base Move SequenceChecker header to API: step 1, move header only 2021-02-08 11:49:58 +00:00
rtc_tools Add more refined control over dumping of data and the aecdump content 2021-02-06 00:36:10 +00:00
sdk Replace rtc::ThreadChecker with webrtc::SequenceChecker 2021-02-02 14:56:27 +00:00
stats Remove from chromium build targets that are not compatible with it. 2021-02-01 13:46:19 +00:00
style-guide Remove kwiberg@webrtc.org from OWNERS files 2020-12-04 15:11:26 +00:00
system_wrappers Remove from chromium build targets that are not compatible with it. 2021-02-01 13:46:19 +00:00
test Remove thread hops from events provided by JsepTransportController. 2021-02-08 17:52:01 +00:00
tools_webrtc Switch WebRTC's MB to RBE-CAS. 2021-02-01 10:07:59 +00:00
video Reland "Enable Video-QualityScaling experiment by default" 2021-02-05 09:49:13 +00:00
.clang-format Add IncludeBlocks to clang-format. 2021-02-03 16:29:07 +00:00
.git-blame-ignore-revs Let git-hyper-blame ignore new format cleanup. 2019-07-11 16:18:51 +00:00
.gitignore Add .cache to .gitignore. 2021-01-20 15:01:07 +00:00
.gn Rename PlayoutDelay --> VideoPlayoutDelay, move to api/video/video_timing.h 2020-09-07 08:37:14 +00:00
.vpython Reland "Add protobuf-py2_py3 3.13.0 to .vpython." 2020-11-20 07:52:26 +00:00
abseil-in-webrtc.md Polish the "Using Abseil in WebRTC" docs 2020-10-16 13:42:00 +00:00
AUTHORS changed src\modules\audio_device\win\audio_device_core_win.cc , and it is working 2021-02-04 09:31:33 +00:00
BUILD.gn Move SequenceChecker header to API: step 1, move header only 2021-02-08 11:49:58 +00:00
CODE_OF_CONDUCT.md Add code of conduct to WebRTC repo 2017-05-16 12:09:13 +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 Add androidx dependency to webrtc 2021-02-05 14:59:41 +00:00
ENG_REVIEW_OWNERS Remove kwiberg@webrtc.org from OWNERS files 2020-12-04 15:11:26 +00:00
LICENSE Moving src/webrtc into src/. 2017-09-15 04:25:06 +00:00
license_template.txt
native-api.md Make the remote_bitrate_estimator build target private 2020-11-26 12:21:22 +00:00
OWNERS Add hta@ to WebRTC's root OWNERS. 2021-02-03 15:09:31 +00:00
PATENTS Moving src/webrtc into src/. 2017-09-15 04:25:06 +00:00
PRESUBMIT.py Fix Authors Check presubmit. 2020-12-15 11:59:03 +00:00
presubmit_test.py Reformat python files checked by pylint (part 1/2). 2020-10-30 10:13:11 +00:00
presubmit_test_mocks.py Reformat python files checked by pylint (part 1/2). 2020-10-30 10:13:11 +00:00
pylintrc Undo enforcing of PEP-8 pylint changes for method and function names. 2020-11-10 18:26:25 +00:00
README.chromium Add CPEPrefix. 2020-07-13 11:42:07 +00:00
README.md doc: move bug reporting instructions to the repository 2020-10-21 14:47:49 +00:00
style-guide.md C++ style: We don't allow designated initializers 2020-06-03 09:11:09 +00:00
WATCHLISTS Add hta@ to rtc_base/ and api/ WATCHLISTS. 2021-01-06 09:43:34 +00:00
webrtc.gni Make PipeWire 0.3 default version 2021-02-04 11:17:55 +00:00
webrtc_lib_link_test.cc Rewrite the lib link test to just be a binary. 2019-10-18 07:42:20 +00:00
whitespace.txt Just adding my message in whitespace. 2021-02-04 12:40:16 +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