Commit Graph

376 Commits

Author SHA1 Message Date
84f6a3fc6b Move optional.h to webrtc/api/
We use Optional in our public API, so its header should be in
webrtc/api/.

BUG=webrtc:8205

Review-Url: https://codereview.webrtc.org/3011943002
Cr-Commit-Position: refs/heads/master@{#19693}
2017-09-05 15:43:13 +00:00
23814b7df7 Revert of Make RtcEventLogImpl to use a TaskQueue instead of a helper-thread (patchset #4 id:200001 of https://codereview.webrtc.org/3005153002/ )
Reason for revert:
Landed without CQ, which was unintended.

Original issue's description:
> Reland of Make RtcEventLogImpl to use a TaskQueue instead of a helper-thread (patchset #1 id:1 of https://codereview.webrtc.org/3010143002/ )
>
> Reason for revert:
> I will fix and reland.
>
> Original issue's description:
> > Revert of Make RtcEventLogImpl to use a TaskQueue instead of a helper-thread (patchset #18 id:340001 of https://codereview.webrtc.org/3007473002/ )
> >
> > Reason for revert:
> > Breaks google3 project.
> >
> > Original issue's description:
> > > Make RtcEventLogImpl to use a TaskQueue instead of a helper-thread
> > >
> > > Make RtcEventLogImpl to use a TaskQueue instead of a helper-thread. This will eventually allow us to run multiple log sessions on a single task-queue.
> > >
> > > BUG=webrtc:8142, webrtc:8143, webrtc:8145
> > >
> > > Review-Url: https://codereview.webrtc.org/3007473002
> > > Cr-Commit-Position: refs/heads/master@{#19666}
> > > Committed: f33cee7534
> >
> > TBR=terelius@webrtc.org,nisse@webrtc.org,eladalon@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=webrtc:8142, webrtc:8143, webrtc:8145
> >
> > Review-Url: https://codereview.webrtc.org/3010143002
> > Cr-Commit-Position: refs/heads/master@{#19672}
> > Committed: 3eac8002db
>
> TBR=terelius@webrtc.org,nisse@webrtc.org,charujain@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:8142, webrtc:8143, webrtc:8145
>
> Review-Url: https://codereview.webrtc.org/3005153002
> Cr-Commit-Position: refs/heads/master@{#19690}
> Committed: d67cefbbea

TBR=terelius@webrtc.org,nisse@webrtc.org,kwiberg@webrtc.org,perkj@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:8142, webrtc:8143, webrtc:8145

Review-Url: https://codereview.webrtc.org/3007193002
Cr-Commit-Position: refs/heads/master@{#19691}
2017-09-05 15:33:54 +00:00
d67cefbbea Reland of Make RtcEventLogImpl to use a TaskQueue instead of a helper-thread (patchset #1 id:1 of https://codereview.webrtc.org/3010143002/ )
Reason for revert:
I will fix and reland.

Original issue's description:
> Revert of Make RtcEventLogImpl to use a TaskQueue instead of a helper-thread (patchset #18 id:340001 of https://codereview.webrtc.org/3007473002/ )
>
> Reason for revert:
> Breaks google3 project.
>
> Original issue's description:
> > Make RtcEventLogImpl to use a TaskQueue instead of a helper-thread
> >
> > Make RtcEventLogImpl to use a TaskQueue instead of a helper-thread. This will eventually allow us to run multiple log sessions on a single task-queue.
> >
> > BUG=webrtc:8142, webrtc:8143, webrtc:8145
> >
> > Review-Url: https://codereview.webrtc.org/3007473002
> > Cr-Commit-Position: refs/heads/master@{#19666}
> > Committed: f33cee7534
>
> TBR=terelius@webrtc.org,nisse@webrtc.org,eladalon@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:8142, webrtc:8143, webrtc:8145
>
> Review-Url: https://codereview.webrtc.org/3010143002
> Cr-Commit-Position: refs/heads/master@{#19672}
> Committed: 3eac8002db

TBR=terelius@webrtc.org,nisse@webrtc.org,charujain@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:8142, webrtc:8143, webrtc:8145

Review-Url: https://codereview.webrtc.org/3005153002
Cr-Commit-Position: refs/heads/master@{#19690}
2017-09-05 15:15:02 +00:00
393a9f6926 Avoid construction of unused RtcEventLogNullImpl object
This CL addresses to nits:
1. When event_log_factory_ is not null, there's no need to create a RtcEventLogNullImpl object.
2. Use MakeUnique.

BUG=None

Review-Url: https://codereview.webrtc.org/3012763002
Cr-Commit-Position: refs/heads/master@{#19686}
2017-09-05 11:30:30 +00:00
8ab0fd80ad Reland of Trace the stats report as JSON instead of each stat separately. (patchset #1 id:1 of https://codereview.webrtc.org/3001683002/ )
Reason for revert:
Fixed

Original issue's description:
> Revert of Trace the stats report as JSON instead of each stat separately. (patchset #3 id:100001 of https://codereview.webrtc.org/2986453002/ )
>
> Reason for revert:
> It breaks a downstream project.
>
> Original issue's description:
> > Trace the stats report as JSON instead of each stat separately.
> >
> > Trace the whole report as a string instead of each field on it's own. And test that the traces collected are valid.
> >
> > R=tommi@webrtc.org, hbos@webrtc.org
> > BUG=chromium:653087
> >
> > Review-Url: https://codereview.webrtc.org/2986453002
> > Cr-Commit-Position: refs/heads/master@{#19341}
> > Committed: 80c65780e6
>
> TBR=hbos@webrtc.org,tommi@webrtc.org,ehmaldonado@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=chromium:653087
>
> Review-Url: https://codereview.webrtc.org/3001683002
> Cr-Commit-Position: refs/heads/master@{#19344}
> Committed: 3439c89358

BUG=chromium:653087

Review-Url: https://codereview.webrtc.org/3000943002
Cr-Commit-Position: refs/heads/master@{#19673}
2017-09-04 21:35:04 +00:00
2e1b40bdf6 Implement googContentType GetStats metric reported on receive side.
Reported per video stream as a string.

BUG=webrtc:8174

Review-Url: https://codereview.webrtc.org/3009793002
Cr-Commit-Position: refs/heads/master@{#19667}
2017-09-04 14:57:17 +00:00
529662a44c Move array_view.h to webrtc/api/
We use ArrayView in our public API, so its header should be in
webrtc/api/.

BUG=none

Review-Url: https://codereview.webrtc.org/3007763002
Cr-Commit-Position: refs/heads/master@{#19658}
2017-09-04 12:43:17 +00:00
1acbd68718 Move RtpExtension to api/ directory and config.h/.cc to call/.
BUG=webrtc:5876
R=deadbeef@webrtc.org, solenberg@webrtc.org

Review-Url: https://codereview.webrtc.org/3004723002 .
Cr-Commit-Position: refs/heads/master@{#19639}
2017-09-01 13:29:30 +00:00
e683c6871f Completed the functionalities of SrtpTransport.
The SrtpTransport takes the SRTP responsibilities from the BaseChannel
and SrtpFilter. SrtpTransport is now responsible for setting the crypto
keys, protecting and unprotecting the packets. SrtpTransport doesn't know
if the keys are from SDES or DTLS handshake.

BaseChannel is now only responsible setting the offer/answer for SDES
or extracting the key from DtlsTransport and configuring the
SrtpTransport.

SrtpFilter is used by BaseChannel as a helper for SDES negotiation.

BUG=webrtc:7013

Review-Url: https://codereview.webrtc.org/2997983002
Cr-Commit-Position: refs/heads/master@{#19636}
2017-08-31 23:00:07 +00:00
9868042b05 Removes unused APIs from the ADM (part II).
Removes:

int32_t SpeakerVolumeStepSize(uint16_t* stepSize)
int32_t MicrophoneVolumeStepSize(uint16_t* stepSize)
int32_t MicrophoneBoostIsAvailable(bool* available)
int32_t SetMicrophoneBoost(bool enable)
int32_t MicrophoneBoost(bool* enabled)
int32_t SetPlayoutBuffer(const BufferType type, uint16_t sizeMS = 0)
int32_t PlayoutBuffer(BufferType* type, uint16_t* sizeMS)
int32_t CPULoad(uint16_t* load)
int32_t StartRawOutputFileRecording(const char pcmFileNameUTF8[kAdmMaxFileNameSize])
int32_t StopRawOutputFileRecording()
int32_t StartRawInputFileRecording(const char pcmFileNameUTF8[kAdmMaxFileNameSize])
int32_t StopRawInputFileRecording()
int32_t ResetAudioDevice()

BUG=webrtc:7306

Review-Url: https://codereview.webrtc.org/3006803002
Cr-Commit-Position: refs/heads/master@{#19632}
2017-08-31 13:47:32 +00:00
169629aca3 Change WebRtcSession to have a vector of channels
This is the first step towards supporting multiple audio/video
channels in PeerConnection/WebRtcSession. For now, there can only
be 0 or 1 channels in the vector. This adds the framework so that
all the other code that assumes a single audio/video channel can
be transitioned one-by-one to multiple channels.

Bug: webrtc:8183
Change-Id: I6456af32d6e3adf7eb83e281e43253ea973c4eb9
Reviewed-on: https://chromium-review.googlesource.com/644222
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19615}
2017-08-31 01:15:23 +00:00
774115c8c6 Change ChannelManager to use unique_ptr
Also clarify the ownership of created channels.

Bug: None
Change-Id: I9cbaec177069d27da2b3b48b93af48f705243b4b
Reviewed-on: https://chromium-review.googlesource.com/643950
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19612}
2017-08-30 22:52:33 +00:00
24efa72e54 Fix RTCP transport not destroyed when channel creation fails
Bug: None
Change-Id: Ic2f1b7899307eff9b2c98805a5a0eb22ca2e062d
Reviewed-on: https://chromium-review.googlesource.com/642458
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19611}
2017-08-30 22:35:18 +00:00
16adf03d25 Recently we moved webrtc/base to webrtc/rtc_base, so these
directives in our DEPS files are not needed anymore.

Includes from webrtc/rtc_base are also whitelisted in webrtc/DEPS
so we don't have to whitelist it in all the others DEPS files.

BUG=webrtc:7634
NOTRY=True

Review-Url: https://codereview.webrtc.org/3006583002
Cr-Commit-Position: refs/heads/master@{#19601}
2017-08-30 11:45:58 +00:00
141aacbf0b Fix the Chromium crash when creating an answer without a remote description.
Replacing the RTC_DCHECK with an if condition so that the method GetOptionsForAnswer
won't crash when there is no remote description. WebRtcSessionDescriptionFactory
will handle the null remote description.

TBR=deadbeef@webrtc.org
BUG=chromium:757830

Review-Url: https://codereview.webrtc.org/3006723002
Cr-Commit-Position: refs/heads/master@{#19589}
2017-08-29 20:23:53 +00:00
1dca9d513a Support a user-provided string for the TLS ALPN extension.
Fix source formatting
Add TLS ALPN extension.

Bug: webrtc:8086
Change-Id: I1f28ccd78760d3415e465f734744d2c2f93845e2
Reviewed-on: https://chromium-review.googlesource.com/611150
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Justin Uberti <juberti@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Commit-Queue: Diogo Real <diogor@google.com>
Cr-Commit-Position: refs/heads/master@{#19588}
2017-08-29 20:11:16 +00:00
ecf312e603 Removes unused WaveOut APIs from ADM.
Will remove default implementations as well once landed and removed
in Chrome as well.

These two AudioDeviceModule APIs are removed:

int32_t SetWaveOutVolume(uint16_t volumeLeft, uint16_t volumeRight)
int32_t WaveOutVolume(uint16_t* volumeLeft, uint16_t* volumeRight) const

BUG=webrtc:7306

Review-Url: https://codereview.webrtc.org/3006793002
Cr-Commit-Position: refs/heads/master@{#19581}
2017-08-29 13:02:10 +00:00
e9ef907991 Revert of Add logging of host lookups made by TurnPort to the RtcEventLog. (patchset #11 id:200001 of https://codereview.webrtc.org/2996933003/ )
Reason for revert:
Breaks Chromium build due to the changed constructor in webrtc/p2p/client/basicportallocator.h.

Build (example): https://build.chromium.org/p/chromium.webrtc.fyi/builders/Linux%20Builder/builds/19739.

Log:
FAILED: obj/remoting/protocol/protocol/port_allocator.o
/b/c/goma_client/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/remoting/protocol/protocol/port_allocator.o.d -DV8_DEPRECATION_WARNINGS -DUSE_UDEV -DUSE_AURA=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=\"310694-2\" -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DCOMPONENT_BUILD -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -D_GLIBCXX_DEBUG=1 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_32 -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_26 -DEXPAT_RELATIVE_PATH -DGL_GLEXT_PROTOTYPES -DUSE_GLX -DUSE_EGL -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DHAVE_PTHREAD -DPROTOBUF_USE_DLLS -DWEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0 -DFEATURE_ENABLE_VOICEMAIL -DGTEST_RELATIVE_PATH -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_LINUX -DBORINGSSL_SHARED_LIBRARY -I../.. -Igen -I../../build/linux/debian_jessie_amd64-sysroot/usr/include/glib-2.0 -I../../build/linux/debian_jessie_amd64-sysroot/usr/lib/x86_64-linux-gnu/glib-2.0/include -I../../third_party/libwebp/src -I../../third_party/khronos -I../../gpu -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/protobuf/src -I../../third_party/webrtc_overrides -I../../testing/gtest/include -I../../third_party -I../../third_party/webrtc_overrides -I../../third_party -I../../third_party/boringssl/src/include -I../../build/linux/debian_jessie_amd64-sysroot/usr/include/nss -I../../build/linux/debian_jessie_amd64-sysroot/usr/include/nspr -I../../third_party/libyuv/include -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -funwind-tables -fPIC -pipe -B../../third_party/binutils/Linux_x64/Release/bin -pthread -fcolor-diagnostics -fdebug-prefix-map=/b/c/b/Linux_Builder__dbg_/src=. -m64 -march=x86-64 -Wall -Werror -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -Wno-undefined-var-template -Wno-nonportable-include-path -Wno-address-of-packed-member -Wno-unused-lambda-capture -Wno-user-defined-warnings -Wno-enum-compare-switch -O0 -fno-omit-frame-pointer -g2 -gsplit-dwarf -fvisibility=hidden -Xclang -load -Xclang ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-auto-raw-pointer -Xclang -plugin-arg-find-bad-constructs -Xclang check-ipc -Wheader-hygiene -Wstring-conversion -Wtautological-overlap-compare -Wexit-time-destructors -Wno-header-guard -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -std=gnu++14 -fno-rtti -nostdinc++ -isystem../../buildtools/third_party/libc++/trunk/include -isystem../../buildtools/third_party/libc++abi/trunk/include --sysroot=../../build/linux/debian_jessie_amd64-sysroot -fno-exceptions -fvisibility-inlines-hidden -c ../../remoting/protocol/port_allocator.cc -o obj/remoting/protocol/protocol/port_allocator.o
../../remoting/protocol/port_allocator.cc:48:7: error: no matching constructor for initialization of 'cricket::BasicPortAllocator'
    : BasicPortAllocator(network_manager.get(), socket_factory.get()),
      ^                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../third_party/webrtc/p2p/client/basicportallocator.h:35:12: note: candidate constructor not viable: requires single argument 'network_manager', but 2 arguments were provided
  explicit BasicPortAllocator(rtc::NetworkManager* network_manager);
           ^
../../third_party/webrtc/p2p/client/basicportallocator.h:30:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 2 were provided
class BasicPortAllocator : public PortAllocator {
      ^
../../third_party/webrtc/p2p/client/basicportallocator.h:32:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided
  BasicPortAllocator(rtc::NetworkManager* network_manager,
  ^
../../third_party/webrtc/p2p/client/basicportallocator.h:36:3: note: candidate constructor not viable: requires 3 arguments, but 2 were provided
  BasicPortAllocator(rtc::NetworkManager* network_manager,
  ^
../../third_party/webrtc/p2p/client/basicportallocator.h:39:3: note: candidate constructor not viable: requires 5 arguments, but 2 were provided
  BasicPortAllocator(rtc::NetworkManager* network_manager,
  ^
1 error generated.

Original issue's description:
> Add logging host lookups made by TurnPort to the RtcEventLog.
>
> The following fields are logged:
> - error, if there was an error.
> - elapsed time in milliseconds
>
> BUG=webrtc:8100
>
> Review-Url: https://codereview.webrtc.org/2996933003
> Cr-Commit-Position: refs/heads/master@{#19574}
> Committed: c251cb13c0

TBR=terelius@webrtc.org,pthatcher@webrtc.org,jonaso@google.com,pthatcher@google.com,solenberg@webrtc.org,deadbeef@webrtc.org,jonaso@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:8100

Review-Url: https://codereview.webrtc.org/3012473002
Cr-Commit-Position: refs/heads/master@{#19578}
2017-08-29 11:49:00 +00:00
c251cb13c0 Add logging host lookups made by TurnPort to the RtcEventLog.
The following fields are logged:
- error, if there was an error.
- elapsed time in milliseconds

BUG=webrtc:8100

Review-Url: https://codereview.webrtc.org/2996933003
Cr-Commit-Position: refs/heads/master@{#19574}
2017-08-29 10:20:58 +00:00
0e320ec5ba Wiring discard rate of audio FEC/RED packets up to StatsReport.
BUG=webrtc:7903

Change-Id: I0325725be354ab89cfce1d3564936fe5ff93d303
Reviewed-on: https://chromium-review.googlesource.com/559339
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19560}
2017-08-28 13:17:55 +00:00
2dbc69fa64 Add stats totalSamplesReceived and concealedSamples
Adds two new stats to RTCMediaStreamTrackStats:
* totalSamplesReceived is the total number of samples received on
      the audio channel and includes real and synthetic samples.
* concealedSamples is the total number of synthetic samples
      received on the audio channel used to conceal packet loss.

Bug: webrtc:8076
Change-Id: I36e9828525ec341490cf3310a972b56a8b443667
Reviewed-on: https://chromium-review.googlesource.com/615902
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19506}
2017-08-25 00:50:42 +00:00
05b07bb833 Fix places that trigger no-unused-lambda-capture - change to using static-constexpr.
Follow up on https://codereview.webrtc.org/3005433002/.

BUG=webrtc:7133
TBR=stefan@webrtc.org

Review-Url: https://codereview.webrtc.org/3003723002
Cr-Commit-Position: refs/heads/master@{#19499}
2017-08-24 14:40:16 +00:00
ea5cc86b37 Delete unneeded include of videocapturer.h
Bug: webrtc:6333
Change-Id: I9e0f15d8d68519e9f8617dd8c54e86932df447d9
Reviewed-on: https://chromium-review.googlesource.com/615240
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19480}
2017-08-24 07:29:04 +00:00
d7850b299b Use fake audio device in peerconnectioninterface_unittest.cc.
This test doesn't actually send/receive any audio; it's only testing
the interface layer. But the fact that it was creating/destroying real
audio devices repeatedly caused problems when tests were run in
parallel. So switching to a fake audio device solves this.

BUG=webrtc:7806

Review-Url: https://codereview.webrtc.org/2997383002
Cr-Commit-Position: refs/heads/master@{#19472}
2017-08-23 17:59:19 +00:00
a79cc28de1 Report max interframe delay over window insdead of interframe delay sum
Maximum of interframe delay is calculated over moving window in
ReceiveStatistics proxy now and reported via GetStats. Name of a metric
is also changed.

BUG=none

Review-Url: https://codereview.webrtc.org/2995143002
Cr-Commit-Position: refs/heads/master@{#19463}
2017-08-23 12:24:10 +00:00
1cc5fc3ebf Fix places that trigger no-unused-lambda-capture
no-unused-lambda-capture was suppressed, but it's been decided as desireable to stop suppressing it. This CL fixes places in the code that trigger it.

1. Some unnecessary captures removed.
2. s/constexpr/const when capturing a float by value - this is good enough to stop the error.
3. Complete removal of the constexpr/const-modifier for int-types as a workaround.

BUG=webrtc:7133

Review-Url: https://codereview.webrtc.org/3005433002
Cr-Commit-Position: refs/heads/master@{#19462}
2017-08-23 11:15:18 +00:00
1c378ed83b Relanding: Adding support for Unified Plan offer/answer negotiation to the mediasession layer.
This layer takes in a simplified "options" struct and the current local description,
and generates a new offer/answer. Previously the options struct assumed there would
only be one media description per media type (audio/video), but it now supports
N number of audio/video descriptions.

The |add_legacy_stream| options is removed from the mediasession.cc/.h
in this CL.

The next step is to add the ability for PeerConnection/WebRtcSession to create
"options" to represent multiple RtpTransceivers, and apply the Unified Plan
descriptions correctly. Right now, only Plan B descriptions will be
generated in unit tests.

BUG=chromium:465349

Review-Url: https://codereview.webrtc.org/2991693002
Cr-Original-Commit-Position: refs/heads/master@{#19343}
Committed: a77e6bbd30
Review-Url: https://codereview.webrtc.org/2991693002
Cr-Commit-Position: refs/heads/master@{#19394}
2017-08-17 21:10:50 +00:00
3c747665d0 Revert of Adding support for Unified Plan offer/answer negotiation. (patchset #9 id:500001 of https://codereview.webrtc.org/2991693002/ )
Reason for revert:
BUG=webrtc:8108: breaks Clang build.

Original issue's description:
> Adding support for Unified Plan offer/answer negotiation to the mediasession layer.
>
> This layer takes in a simplified "options" struct and the current local description,
> and generates a new offer/answer. Previously the options struct assumed there would
> only be one media description per media type (audio/video), but it now supports
> N number of audio/video descriptions.
>
> The |add_legacy_stream| options is removed from the mediasession.cc/.h
> in this CL.
>
> The next step is to add the ability for PeerConnection/WebRtcSession to create
> "options" to represent multiple RtpTransceivers, and apply the Unified Plan
> descriptions correctly. Right now, only Plan B descriptions will be
> generated in unit tests.
>
> BUG=chromium:465349
>
> Review-Url: https://codereview.webrtc.org/2991693002
> Cr-Commit-Position: refs/heads/master@{#19343}
> Committed: a77e6bbd30

TBR=deadbeef@webrtc.org,zhihuang@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=chromium:465349

Review-Url: https://codereview.webrtc.org/3001083002
Cr-Commit-Position: refs/heads/master@{#19384}
2017-08-17 13:50:32 +00:00
3439c89358 Revert of Trace the stats report as JSON instead of each stat separately. (patchset #3 id:100001 of https://codereview.webrtc.org/2986453002/ )
Reason for revert:
It breaks a downstream project.

Original issue's description:
> Trace the stats report as JSON instead of each stat separately.
>
> Trace the whole report as a string instead of each field on it's own. And test that the traces collected are valid.
>
> R=tommi@webrtc.org, hbos@webrtc.org
> BUG=chromium:653087
>
> Review-Url: https://codereview.webrtc.org/2986453002
> Cr-Commit-Position: refs/heads/master@{#19341}
> Committed: 80c65780e6

TBR=hbos@webrtc.org,tommi@webrtc.org,ehmaldonado@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:653087

Review-Url: https://codereview.webrtc.org/3001683002
Cr-Commit-Position: refs/heads/master@{#19344}
2017-08-15 06:48:03 +00:00
a77e6bbd30 Adding support for Unified Plan offer/answer negotiation to the mediasession layer.
This layer takes in a simplified "options" struct and the current local description,
and generates a new offer/answer. Previously the options struct assumed there would
only be one media description per media type (audio/video), but it now supports
N number of audio/video descriptions.

The |add_legacy_stream| options is removed from the mediasession.cc/.h
in this CL.

The next step is to add the ability for PeerConnection/WebRtcSession to create
"options" to represent multiple RtpTransceivers, and apply the Unified Plan
descriptions correctly. Right now, only Plan B descriptions will be
generated in unit tests.

BUG=chromium:465349

Review-Url: https://codereview.webrtc.org/2991693002
Cr-Commit-Position: refs/heads/master@{#19343}
2017-08-15 01:17:48 +00:00
80c65780e6 Trace the stats report as JSON instead of each stat separately.
Trace the whole report as a string instead of each field on it's own. And test that the traces collected are valid.

R=tommi@webrtc.org, hbos@webrtc.org
BUG=chromium:653087

Review-Url: https://codereview.webrtc.org/2986453002
Cr-Commit-Position: refs/heads/master@{#19341}
2017-08-14 16:51:26 +00:00
ee89e7870c Replace CHECK(x && y) with two separate CHECK() calls
That way, the debug printout will tell us which of x and y that was false.

BUG=none

Review-Url: https://codereview.webrtc.org/2988153003
Cr-Commit-Position: refs/heads/master@{#19297}
2017-08-10 00:22:01 +00:00
db2a9fc6ec Wire up RTP keep-alive in ortc api.
[This CL is work in progress.]

Wire up the rtp keep-alive in webrtc::Call::Config using new
SetRtpTransportParameters() method on RtpTransportInterface.

BUG=webrtc:7907

Review-Url: https://codereview.webrtc.org/2981513002
Cr-Commit-Position: refs/heads/master@{#19287}
2017-08-09 13:42:32 +00:00
3e8016e1d5 Ignore "b=AS:-1" instead of treating as a hard error.
Follow up to https://codereview.webrtc.org/2989243002/.

It turns out that "b=AS:-1" was being used to mean "no bandwidth limit",
even though just omitting "b=AS" completely will do that. So we should
treat this as a soft error for now, and give applications time to
transition to doing the standard thing.

BUG=chromium:675361

Review-Url: https://codereview.webrtc.org/2995463002
Cr-Commit-Position: refs/heads/master@{#19244}
2017-08-04 00:49:30 +00:00
bc88c6ba98 Reject negative values for "b=AS".
It doesn't make sense to have a negative RTP session bandwidth; RFC3550
doesn't define any meaning for this. So just treat it as invalid SDP.

BUG=chromium:675361

Review-Url: https://codereview.webrtc.org/2989243002
Cr-Commit-Position: refs/heads/master@{#19221}
2017-08-02 18:26:34 +00:00
773be36bd6 Reland of Change VideoTrack implementation to invoke VideoTrackSourceInterface::AddOrUpdateSink on wt
Added documentation of thread expectations for video tracks and sources to the API.

Originally landed as patchset #2 id:20001 of https://codereview.webrtc.org/2964863002/.

Patchset 1 is the originall cl.
Patschet 2 is modified so that VideoTrackInterface::AddSink and RemoveSink have a default implementation.

BUG=none

Review-Url: https://codereview.webrtc.org/2989113002
Cr-Commit-Position: refs/heads/master@{#19195}
2017-08-01 06:22:01 +00:00
35a872c0e6 Make RTCStatsReport::ToString() return JSON-parseable string.
BUG=chromium:653087

Review-Url: https://codereview.webrtc.org/2983243002
Cr-Commit-Position: refs/heads/master@{#19180}
2017-07-28 14:29:12 +00:00
4c27a96767 Remove libsrtp 2.0.0 compatibility code.
The upgrade to libsrtp 2.1.0 rolled in https://codereview.webrtc.org/2968463002
so the compatibility code can be removed.

BUG=webrtc:7856

Review-Url: https://codereview.webrtc.org/2969543002
Cr-Commit-Position: refs/heads/master@{#19174}
2017-07-27 22:04:20 +00:00
d21eab3eea Add "max_ipv6_networks" field to RTCConfiguration.
This allows an application to easily override the default limit
(currently 5).

Also adding a test that covers more of the
PeerConnection<->PortAllocator interaction.

BUG=webrtc:7703

Review-Url: https://codereview.webrtc.org/2985653003
Cr-Commit-Position: refs/heads/master@{#19160}
2017-07-26 23:50:11 +00:00
ec390b5dfb When a track is added/removed directly to MediaStream notify observer->OnRenegotionNeeded
There is an inconsistency in behavior of PeerConnection.
When I remove track from PeerConnection observer->OnRenegotiationNeeded is called, however if I remove track from MediaStream then there is no notification to renegotiate.
This patch adds missing OnRenegotiationNeeded calls.

BUG=webrtc:7966

Review-Url: https://codereview.webrtc.org/2977493002
Cr-Commit-Position: refs/heads/master@{#19125}
2017-07-25 00:00:25 +00:00
398c3fd6c2 Introduce RtpTransportInternal and SrtpTransport.
SrtpTransport currently just delegates everything to RtpTransport.
Also makes BaseChannel::rtp_transport_ an RtpTransportInternal and constructs an SrtpTransport if srtp is required.

BUG=webrtc:7013

Review-Url: https://codereview.webrtc.org/2981013002
Cr-Commit-Position: refs/heads/master@{#19095}
2017-07-19 20:38:02 +00:00
f6a861ab6c Remove remains of webrtc/base
All downstream code have been updated to the new location.

In PRESUBMIT.py:
* Remove webrtc/rtc_base from CPP_BLACKLIST
* Add webrtc/rtc_base to LEGACY_API_DIRS

Fix some duplicated paths in
webrtc/modules/audio_processing/test/conversational_speech/BUILD.gn

BUG=webrtc:7634
TBR=kwiberg@webrtc.org

Review-Url: https://codereview.webrtc.org/2976293002
Cr-Commit-Position: refs/heads/master@{#19094}
2017-07-19 17:40:47 +00:00
80c829f253 Enable tracing on rtcstats_integrationtest.cc
BUG=chromium:653087

Review-Url: https://codereview.webrtc.org/2979203002
Cr-Commit-Position: refs/heads/master@{#19076}
2017-07-18 14:35:19 +00:00
b0b721a68c Increase the size of the buffer for type.name.id.
BUG=chromium:653087

Review-Url: https://codereview.webrtc.org/2977363002
Cr-Commit-Position: refs/heads/master@{#19072}
2017-07-18 11:27:08 +00:00
a26196bc65 Trace stats in RTCStatsCollector.
BUG=chromium:653087

Review-Url: https://codereview.webrtc.org/2975793002
Cr-Commit-Position: refs/heads/master@{#19069}
2017-07-18 10:30:29 +00:00
038834f40c Reinstate "Add additional check when setting RTCConfiguration"
This reverts commit 26d5e2e2809558148dc1e977ec1bc8318a2047bc.

Reverted originally because it dependend on a CL which was reverted. That CL has been reinstated in: https://chromium-review.googlesource.com/#/c/572070/

Bug: webrtc:7969
Change-Id: I404c3a42ad447312d981646dca0aa4cf0ec3134e
Reviewed-on: https://chromium-review.googlesource.com/572403
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19034}
2017-07-14 23:40:53 +00:00
300bf8e14b Reinstate "API for periodically regathering ICE candidates"
Use rtc::SystemTimeNanos() instead of std::random_device() for PRNG seed
to avoid crashing when /dev/urandom is unavailable.

This reverts commit 3beb20720db349f651c2c04970c45b1b171c025c.

Bug: webrtc:7969
Change-Id: I5ed58a789939ee4caa99ac3abf9cab18e3e19c69
Reviewed-on: https://chromium-review.googlesource.com/572070
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19033}
2017-07-14 22:26:05 +00:00
e7251599a3 Reland of Make the default ctor of rtc::Thread, protected
This is a partial re-land. The change doesn't make the default Thread ctor protected anymore but it does mark it as deprecated and updates all use of it in WebRTC.

Original issue's description:

Make the default ctor of rtc::Thread, protected.
The goal is to force use of Thread::Create or Thread::CreateWithSocketServer.

The default constructor constructs a 'default' socket server, which is usually a 'physical' socket server, but not always. Not every instance of Thread actually needs to have network support, so it's better to have this be explicit instead of unknowingly instantiate one.

BUG=none

Review-Url: https://codereview.webrtc.org/2977953002
Cr-Commit-Position: refs/heads/master@{#19031}
2017-07-14 21:44:46 +00:00
634977b611 SignalPacketReceived should pass packet as a pointer instead of a non-const reference.
See https://google.github.io/styleguide/cppguide.html#Reference_Arguments.
The Bind to ProcessPacket in OnPacketReceived is safe because Bind captures arguments by value.

BUG=webrtc:7013

Review-Url: https://codereview.webrtc.org/2980923002
Cr-Commit-Position: refs/heads/master@{#19028}
2017-07-14 19:30:04 +00:00
e76bd3aa43 Adding stats that can be used to compute output audio levels as described here https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamtrackstats-totalaudioenergy.
BUG=webrtc:7982

Review-Url: https://codereview.webrtc.org/2964593002
Cr-Commit-Position: refs/heads/master@{#19027}
2017-07-14 19:17:49 +00:00