No description
Find a file
Steve Anton 07563732f6 [Unified Plan] Avoid offering two senders with the same ID
This can happen with the following sequence of API calls:
1) AddTrack(track) + offer/answer
2) RemoveTrack(track's sender) + offer/answer
3) AddTrack(same track)

Since the first transceiver had already been used to send, it will
not get re-used by the second call to AddTrack. Another RtpSender
will be created with its ID = the track ID. But the code hits a
DCHECK when CreateOffer is later called since both m= sections will
offer the same track ID component of the MSID.

The fix implemented here is to randomly generate a sender ID if
there is already an RtpSender with the track's ID.

Bug: webrtc:8734
Change-Id: Ic2dda23d66e364e77ff7505e1c37e53105a17dae
Reviewed-on: https://webrtc-review.googlesource.com/84249
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23748}
2018-06-26 19:06:17 +00:00
api AEC3: Reverb modeling: Including the freq shape of the tails when modeling the reverberation 2018-06-26 16:17:45 +00:00
audio Update packetsLost and jitter stats any time a packet is received. 2018-06-25 23:56:39 +00:00
build_overrides Add phoglund@ to various OWNERS and remove kjellander@ 2017-10-19 09:21:12 +00:00
call Convert video quality test from a TEST_F to a TEST fixture. 2018-06-21 15:49:43 +00:00
common_audio Extract fft4g into separate build target 2018-06-26 13:39:25 +00:00
common_video Revert "Add Timestamp accessor methods to the EncodedImage class." 2018-06-26 11:52:45 +00:00
data WebRTC: Replace ProjectRootPath by ResourcePath 2016-11-22 18:43:05 +00:00
examples Replace rtc::Optional with absl::optional 2018-06-21 09:32:56 +00:00
infra Flip luci.webrtc.try to production 2018-05-30 08:30:00 +00:00
logging Style fixes in event log unittest. 2018-06-26 12:27:55 +00:00
media Add functionality to set min bitrate for single stream through RtpEncodingParameters. 2018-06-25 10:10:48 +00:00
modules AEC3: Reverb modeling: Including the freq shape of the tails when modeling the reverberation 2018-06-26 16:17:45 +00:00
ortc Refactor RtpSender to take the sender ID as a constructor argument 2018-06-25 21:01:02 +00:00
p2p Reland "Enable any address ports by default." 2018-06-22 17:27:34 +00:00
pc [Unified Plan] Avoid offering two senders with the same ID 2018-06-26 19:06:17 +00:00
resources AGC2 RNN VAD: Polishing. 2018-05-15 16:41:02 +00:00
rtc_base Delete unused class TransformAdapter. 2018-06-26 09:42:18 +00:00
rtc_tools Adding NetEq lifetime stats to event log visualizer. 2018-06-26 11:27:09 +00:00
sdk Reland "Reland "Injectable logging"" 2018-06-21 13:44:53 +00:00
stats Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
style-guide Add style guide rule about paired .h and .cc files 2018-03-14 13:02:35 +00:00
system_wrappers Replace rtc::Optional with absl::optional 2018-06-21 09:32:56 +00:00
test Revert "Add Timestamp accessor methods to the EncodedImage class." 2018-06-26 11:52:45 +00:00
third_party Roll chromium_revision cb8b61b491..72ef4e4784 (569376:569500) 2018-06-22 02:09:00 +00:00
tools_webrtc Removing some TSan suppressions around Thread class. 2018-06-20 19:42:48 +00:00
video Revert "Add Timestamp accessor methods to the EncodedImage class." 2018-06-26 11:52:45 +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 format commit. 2018-06-20 09:26:44 +00:00
.gitignore Remove third_party from DEPS file to prepare to check it into webrtc. 2018-05-11 09:30:12 +00:00
.gn Opt out of "Migrate the Android Support Lib to android_deps". 2018-04-05 13:40:53 +00:00
.vpython Add vpython dependencies needed to run presubmit tests on LUCI 2018-05-18 08:10:25 +00:00
AUTHORS Generalize SimulcastEncoderAdapter, use for H264 & VP8. 2018-06-21 15:57:43 +00:00
BUILD.gn Android: Add helper class for generating OpenGL shaders 2018-06-15 09:06:45 +00:00
CODE_OF_CONDUCT.md Add code of conduct to WebRTC repo 2017-05-16 12:09:13 +00:00
codereview.settings Make Gerrit the default for WebRTC changes 2017-09-29 01:38:07 +00:00
common_types.h Reformat the WebRTC code base 2018-06-19 14:00:39 +00:00
DEPS Implement PayloadUnion as variant instead of pair of optionals 2018-06-26 15:58:06 +00:00
LICENSE Moving src/webrtc into src/. 2017-09-15 04:25:06 +00:00
license_template.txt Update template to follow chromium copyright style 2013-04-24 01:01:28 +00:00
LICENSE_THIRD_PARTY Remove third party dependecies that are not more in the source code 2018-06-21 11:33:41 +00:00
native-api.md Remove legacy VoiceEngine. 2018-01-12 11:31:52 +00:00
OWNERS Add mbonadei@ to build configs OWNERS. 2018-06-20 12:39:11 +00:00
PATENTS Moving src/webrtc into src/. 2017-09-15 04:25:06 +00:00
PRESUBMIT.py Add format check to git cl presubmit 2018-06-20 14:46:46 +00:00
presubmit_test.py Roll chromium_revision 95336cb92b..191d55580e (557816:557824) 2018-05-11 11:17:05 +00:00
presubmit_test_mocks.py Reland: Add presubmit check for changes in 3pp 2018-05-22 13:11:18 +00:00
pylintrc Removing invalid-name from disabled pylint checks. 2017-10-11 08:06:49 +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 style guidance about forward declarations. 2018-03-28 20:58:27 +00:00
THIRD_PARTY_CHROMIUM_DEPS.json Add R8 to DEPS. 2018-06-08 10:31:38 +00:00
THIRD_PARTY_WEBRTC_DEPS.json Add base64 webrtc owned third_party dep 2018-06-15 18:54:26 +00:00
typedefs.h Remove typedefs.h from webrtc/ root (part 1) 2018-05-23 12:07:10 +00:00
WATCHLISTS Adding mbonadei@ to build_files WATCHLIST. 2018-06-20 12:38:06 +00:00
webrtc.gni Don't call deprecated FFmpeg API. 2018-06-26 13:57:35 +00:00
whitespace.txt Whitespace change 2018-02-23 10:34: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 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