No description
Find a file
Steve Anton 3fa2b80e14 AsyncTCPSocket: try sending outgoing data until EWOULDBLOCK
The AsyncTCPSocket is an AsyncPacketSocket which means it
emulates UDP-like (packet) semantics via a TCP stream. When
sending, if the entire packet could not be written then the
packet socket should indicate it wrote the whole thing and
flush out the remaining later when the socket is available.

The WriteEvent signal was already wired up but was not getting
fired (at least with the virtual sockets) since it would not
call Send() enough on the underlying socket to get an
EWOULDBLOCK that would register the async event.

This changes AsyncTCPSocket to repeatedly call Send() on the
underlying socket until the entire packet has been written
or EWOULDBLOCK was returned.

Bug: webrtc:6655
Change-Id: I41e81e0c106c9b3e712a8a0f792d28745d93f2d2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/168083
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#30449}
2020-02-03 21:19:57 +00:00
api Adds simulated time controller API. 2020-02-03 10:19:08 +00:00
audio Revert "Inlines NullAudioPoller functionality into AudioState class." 2020-01-30 18:14:11 +00:00
build_overrides Remove crbug.com/904400 workaround. 2019-03-15 18:36:23 +00:00
call Revert "[VP9] Shift spatial layers on RTP level to always start from 0." 2020-02-03 14:15:44 +00:00
common_audio Add floating point support for writing and reading wav files 2020-01-30 13:38:19 +00:00
common_video Reformat GN files. 2020-01-21 12:13:11 +00:00
data Remove old data files. 2018-10-05 14:40:21 +00:00
docs Move spec of experimental RTP header extensions to source repository 2020-02-03 13:57:17 +00:00
examples Reformat GN files. 2020-01-21 12:13:11 +00:00
logging Reformat GN files. 2020-01-21 12:13:11 +00:00
media Allow software fallback on lowest simulcast stream for temporal support 2020-01-31 16:44:47 +00:00
modules Revert "[VP9] Shift spatial layers on RTP level to always start from 0." 2020-02-03 14:15:44 +00:00
p2p AsyncTCPSocket: try sending outgoing data until EWOULDBLOCK 2020-02-03 21:19:57 +00:00
pc Do not transition ICE gathering state to 'complete' when closing 2020-01-30 23:17:59 +00:00
resources Reformat GN files. 2020-01-21 12:13:11 +00:00
rtc_base AsyncTCPSocket: try sending outgoing data until EWOULDBLOCK 2020-02-03 21:19:57 +00:00
rtc_tools Reformat GN files. 2020-01-21 12:13:11 +00:00
sdk Migrate static imports of org.mockito.Matchers. 2020-02-03 08:56:30 +00:00
stats [Stats] Include fecPackets[Reeceived/Discarded] in Members() 2020-01-28 11:22:09 +00:00
style-guide Add style guide rule about paired .h and .cc files 2018-03-14 13:02:35 +00:00
system_wrappers Reformat GN files. 2020-01-21 12:13:11 +00:00
test Accept undecoded frame pairs in VideoLayerAnalyzer 2020-02-03 09:46:55 +00:00
tools_webrtc Make the dashboard upload script read protos instead of JSON. 2020-01-30 10:25:47 +00:00
video Move initial frame drop to overuse module 2020-02-03 11:56:31 +00:00
.clang-format Tune ObjC clang-format configuration 2017-05-11 09:14:18 +00:00
.git-blame-ignore-revs Let git-hyper-blame ignore new format cleanup. 2019-07-11 16:18:51 +00:00
.gitignore Add .clangd to .gitignore 2019-10-28 12:27:50 +00:00
.gn Switch to compiling WebRTC -std=c++14 by default 2019-09-09 19:24:16 +00:00
.vpython Add source-side perf upload script for WebRTC. 2019-11-18 14:37:01 +00:00
abseil-in-webrtc.md Fix typo in abseil-in-webrtc.md. 2019-12-18 14:27:34 +00:00
AUTHORS Update Android camera switch API to allow specifying a name 2020-01-09 16:04:09 +00:00
BUILD.gn Make the dashboard upload script read protos instead of JSON. 2020-01-30 10:25:47 +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
common_types.h Format almost everything. 2019-07-08 13:45:15 +00:00
DEPS Roll chromium_revision fa85f826d0..dd5a54c29b (736081:736224) 2020-01-29 04:51:45 +00:00
ENG_REVIEW_OWNERS Enforce LGTM from owners of depends-on paths in DEPS via presubmit. 2018-09-28 12:49:54 +00:00
LICENSE Moving src/webrtc into src/. 2017-09-15 04:25:06 +00:00
license_template.txt
native-api.md Delete unused I420 "codec" 2018-12-18 12:30:58 +00:00
OWNERS Add #COMPONENT to WebRTC. 2019-10-08 12:20:39 +00:00
PATENTS Moving src/webrtc into src/. 2017-09-15 04:25:06 +00:00
PRESUBMIT.py Fix public_deps presubmit and gn format fighting each other. 2020-01-30 11:22:46 +00:00
presubmit_test.py Use source_sets in component builds and static_library in release builds. 2019-10-17 21:17:18 +00:00
presubmit_test_mocks.py Reland: Add presubmit check for changes in 3pp 2018-05-22 13:11:18 +00:00
pylintrc Fixing py lint errors 2018-07-23 15:28:48 +00:00
README.chromium Moving src/webrtc into src/. 2017-09-15 04:25:06 +00:00
README.md Tell users where they can find the native API headers 2017-11-14 10:36:46 +00:00
style-guide.md Add guidance to style guide how to reference a bug in a TODO 2019-12-11 11:55:52 +00:00
WATCHLISTS Remove benwright@webrtc.org from WATCHLISTS 2020-01-31 18:46:52 +00:00
webrtc.gni Reformat GN files. 2020-01-21 12:13:11 +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 Whitespace change 2020-01-28 07:53:15 +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 http://www.webrtc.org/native-code/development 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