Commit Graph

26583 Commits

Author SHA1 Message Date
3481db2090 Add stream label to audio streams in PC E2E framework
Bug: webrtc:10138
Change-Id: I18cbc219df817df54a8c4123c05ac348e0a30c75
Reviewed-on: https://webrtc-review.googlesource.com/c/124983
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26901}
2019-02-28 15:23:52 +00:00
970f2f7c1a [clang-tidy] Apply bugprone-argument-comment fixes.
This CL applies clang-tidy's bugprone-argument-comment [1] to the
WebRTC codebase.

All changes in this CL are automatically generated by both clang-tidy
and 'git cl format'.

[1] - https://clang.llvm.org/extra/clang-tidy/checks/bugprone-argument-comment.html

Bug: webrtc:10252
Change-Id: I77fec17509311275f18e730e482fb9f3fb2998ad
Reviewed-on: https://webrtc-review.googlesource.com/c/124989
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26900}
2019-02-28 14:51:51 +00:00
d3a780b476 Cleanup NetEqPostponeDecodingAfterExpand field trial.
Change-Id: Ie96e9b35ced4b6ca8daa78f1fa80816386a6643b
Bug: webrtc:9289
Reviewed-on: https://webrtc-review.googlesource.com/c/124127
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26899}
2019-02-28 14:45:59 +00:00
6b7bf6ab0c Add a presubmit check for absl/memory/memory.h inclusion for WrapUnique
This fixes a build error on C++17 mode due to missing #include, plus
adds a presubmit check to prevent further breakage.

Bug: chromium:752720
Change-Id: I5c7d1dca0079dfe7a042650402e6f7ae28a797ba
Reviewed-on: https://webrtc-review.googlesource.com/c/124940
Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26898}
2019-02-28 14:12:48 +00:00
cf7c58458e Only draw frames with height and width >0
There has been some crashes due to frames having illegal sizes, most
likely 0x0. Probably these frames are created as a workaround for
something.

It would be best to stop 0x0 frames from being created in the first
place, but a reasonable quick fix is to just not draw those frames.

Bug: webrtc:10367
Change-Id: Ib93057c4de7285773c99614b4e7d9bd4b099c4dc
Reviewed-on: https://webrtc-review.googlesource.com/c/124988
Commit-Queue: Paulina Hensman <phensman@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26897}
2019-02-28 14:08:38 +00:00
40b030edbf Reland "Fix getStats() freeze bug affecting Chromium but not WebRTC standalone."
This is a reland of 05d43c6f7fe497fed0f2c8714e2042dd07a86df2

The original CL got reverted because Chrome did not support IsQuitting() which
triggered a NOTREACHED() inside of a DCHECK. With
https://chromium-review.googlesource.com/c/chromium/src/+/1491620
it is safe to reland this CL.

The only changes between this and the original patch set is that this is now
rebased on top of https://webrtc-review.googlesource.com/c/src/+/124701, i.e.
rtc::PostMessageWithFunctor() has been replaced by rtc::Thread::PostTask().

Original change's description:
> Fix getStats() freeze bug affecting Chromium but not WebRTC standalone.
>
> PeerConnection::Close() is, per-spec, a blocking operation.
> Unfortunately, PeerConnection is implemented to own resources used by
> the network thread, and Close() - on the signaling thread - destroys
> these resources. As such, tasks run in parallel like getStats() get into
> race conditions with Close() unless synchronized. The mechanism in-place
> is RTCStatsCollector::WaitForPendingRequest(), it waits until the
> network thread is done with the in-parallel stats request.
>
> Prior to this CL, this was implemented by performing
> rtc::Thread::ProcessMessages() in a loop until the network thread had
> posted a task on the signaling thread to say that it was done which
> would then get processed by ProcessMessages(). In WebRTC this works, and
> the test is RTCStatsIntegrationTest.GetsStatsWhileClosingPeerConnection.
>
> But because Chromium's thread wrapper does no support
> ProcessMessages(), calling getStats() followed by close() in Chrome
> resulted in waiting forever (https://crbug.com/850907).
>
> In this CL, the process messages loop is removed. Instead, the shared
> resources are guarded by an rtc::Event. WaitForPendingRequest() still
> blocks the signaling thread, but only while shared resources are in use
> by the network thread. After this CL, calling WaitForPendingRequest() no
> longer has any unexpected side-effects since it no longer processes
> other messages that might have been posted on the thread.
>
> The resource ownership and threading model of WebRTC deserves to be
> revisited, but this fixes a common Chromium crash without redesigning
> PeerConnection, in a way that does not cause more blocking than what
> the other PeerConnection methods are already doing.
>
> Note: An alternative to using rtc::Event is to use resource locks and
> to not perform the stats collection on the network thread if the
> request was cancelled before the start of processing, but this has very
> little benefit in terms of performance: once the network thread starts
> collecting the stats, it would use the lock until collection is
> completed, blocking the signaling thread trying to acquire that lock
> anyway. This defeats the purpose and is a riskier change, since
> cancelling partial collection in this inherently racy edge-case would
> have observable differences from the returned stats, which may cause
> more regressions.
>
> Bug: chromium:850907
> Change-Id: Idceeee0bddc0c9d5518b58a2b263abb2bbf47cff
> Reviewed-on: https://webrtc-review.googlesource.com/c/121567
> Commit-Queue: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Steve Anton <steveanton@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26707}

TBR=steveanton@webrtc.org

Bug: chromium:850907
Change-Id: I5be7f69f0de65ff1120e4926fbf904def97ea9c0
Reviewed-on: https://webrtc-review.googlesource.com/c/124781
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26896}
2019-02-28 12:38:30 +00:00
25fb765367 Roll chromium_revision ec3bf6e607..16b0680682 (635450:636404)
Change log: ec3bf6e607..16b0680682
Full diff: ec3bf6e607..16b0680682

Changed dependencies
* src/base: f0707f7626..a932cc7f7f
* src/build: 2067ed5489..a311351d6d
* src/ios: 1284a61234..cd6654d764
* src/testing: 3b40a5def8..5c87560c5d
* src/third_party: 3950383b60..6ed4de3f54
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/c18353d214..a6124742d0
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/7180cebfd3..afd6d361b5
* src/third_party/depot_tools: 2afcf22ad1..fe34723a55
* src/third_party/icu: 960f195aa8..8c67416ccb
* src/third_party/libFuzzer/src: 178ac93d6e..e847d8a9b4
* src/tools: ba281c1bee..c448e8ea15
DEPS diff: ec3bf6e607..16b0680682/DEPS

Clang version changed 353250:354873
Details: ec3bf6e607..16b0680682/tools/clang/scripts/update.py

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: Iff0862b108c451bc972ff812605da28a09e39435
Reviewed-on: https://webrtc-review.googlesource.com/c/124930
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#26895}
2019-02-28 11:35:30 +00:00
ba4dcc3ed8 rtc::Thread::PostTask() added.
This method allows asynchronously posting tasks, in the form of
functors to be invoked, on the thread represented by rtc::Thread.

This CL removes PostMessageWithFunctor(), putting the implementation of
it directly into rtc::Thread::PostTask(), and moves & updates the test
coverage to thread_unittest.cc.

Bug: webrtc:10294, webrtc:10293
Change-Id: Ic6cc3e2533a4f7aaff141aff28e9bb3908ee3c96
Reviewed-on: https://webrtc-review.googlesource.com/c/124701
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26894}
2019-02-28 11:29:19 +00:00
8f385e39fa Remove dependency on DECLARE_IUNKNOWN macro on Windows.
Bug: webrtc:10355
Change-Id: I8baea58a3523ed812a3a760ccde123d8405040df
Reviewed-on: https://webrtc-review.googlesource.com/c/124982
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26893}
2019-02-28 10:59:27 +00:00
7c5541557b Fix call setup: change way of adding media to the call.
To correctly send media from Bob to Alice, when Alice is calling Bob
we have to add transceivers for Bob's media to Alice first, because
it is forbidden to add new media sections into answer in Unified Plan,
so Alice's offer have to contain media sections for Bob's media tracks.

Bug: webrtc:10138
Change-Id: I8a5f19aa5ed6051a981472d5c79493362365f587
Reviewed-on: https://webrtc-review.googlesource.com/c/124492
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26892}
2019-02-28 10:57:32 +00:00
03257b049e Add flag for explicitly specifying that the legacy AEC2 should be used
This CL adds a temporary flag for specifying that the legacy AEC2 should
be used.

Bug: webrtc:10366
Change-Id: Ie3edaa1560cdc1282b62242beb67aa6fee7f2841
Reviewed-on: https://webrtc-review.googlesource.com/c/124980
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26891}
2019-02-28 10:56:27 +00:00
f3280e99b0 Create conversions between webrtc::TaskQueueBase and rtc::TaskQueue
Bug: webrtc:10191
Change-Id: Ia6642081ac758e31c14780bdd83dbc88279cce6d
Reviewed-on: https://webrtc-review.googlesource.com/c/124826
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26890}
2019-02-28 10:36:07 +00:00
c85328f2ca Add SCTP transport to the public API.
This involves inserting an extra layer between jsep_transport_controller
and the cricket::SctpTransportInternal layer. The objects at this layer
are reference counted.

Bug: chromium:818643
Change-Id: Ibed57c4a538de981cee63e0f7f1f319f029cab39
Reviewed-on: https://webrtc-review.googlesource.com/c/123884
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26889}
2019-02-28 10:15:05 +00:00
60fd73a9fc Migrate SequencedTaskChecker to rely on webrtc::TaskQueueBase interface
Bug: webrtc:10191
Change-Id: I94254defac26e45f684dc5be73f0b18b5108b2be
Reviewed-on: https://webrtc-review.googlesource.com/c/124120
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26888}
2019-02-28 10:08:19 +00:00
ba7886b076 Move command line flags out of NetEqTestFactory
This replaces the use of command-line flags with the use of a config
struct. This makes it easier for non command-line applications to use
the NetEqTestFactory to run simulations.

Bug: webrtc:10337
Change-Id: I24533bf206e70e12db9af8d9675769c1ff7c7d48
Reviewed-on: https://webrtc-review.googlesource.com/c/123600
Reviewed-by: Pablo Barrera González <barrerap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26887}
2019-02-28 10:01:25 +00:00
5983585ee8 Introduce test case name in peer connection e2e test framework.
Introduce test case name for proper metrics reporting across different
parts of framework.

Bug: webrtc:10138
Change-Id: I7c501413ca2f2ee40314d988855dec0c28381c47
Reviewed-on: https://webrtc-review.googlesource.com/c/124740
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26886}
2019-02-28 08:54:33 +00:00
f5e5f0d643 Reland "Improve example video analyzer for use in debugging"
This is a reland of 1570218ec9fc5d00642a5cf0c1cd8a16260a19a6

Original change's description:
> Improve example video analyzer for use in debugging
> 
> Bug: webrtc:10138
> Change-Id: I40e81179ae6bec83efc57a5723450690c21c3481
> Reviewed-on: https://webrtc-review.googlesource.com/c/124782
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26883}

Bug: webrtc:10138
Change-Id: I9af9a4aa3ac4618fe1343510cd8c555a3e95a56f
Reviewed-on: https://webrtc-review.googlesource.com/c/124823
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26885}
2019-02-28 08:09:50 +00:00
2585979b1b Revert "Improve example video analyzer for use in debugging"
This reverts commit 1570218ec9fc5d00642a5cf0c1cd8a16260a19a6.

Reason for revert: Speculative revert on tree closing

Original change's description:
> Improve example video analyzer for use in debugging
> 
> Bug: webrtc:10138
> Change-Id: I40e81179ae6bec83efc57a5723450690c21c3481
> Reviewed-on: https://webrtc-review.googlesource.com/c/124782
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26883}

TBR=mbonadei@webrtc.org,titovartem@webrtc.org

Change-Id: I034f689274ceef8a8ea1d26eb5c25e833cf6bdf0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10138
Reviewed-on: https://webrtc-review.googlesource.com/c/124822
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26884}
2019-02-28 00:32:47 +00:00
1570218ec9 Improve example video analyzer for use in debugging
Bug: webrtc:10138
Change-Id: I40e81179ae6bec83efc57a5723450690c21c3481
Reviewed-on: https://webrtc-review.googlesource.com/c/124782
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26883}
2019-02-27 23:38:22 +00:00
105ded358b Pass the x-mt line from SDP to the media transport
If x-mt line is present (one or more), and the first line is dedicated
for the media transport that we support, pass the config down to this
media transport.

In the future we will do 3 changes:
1) Add MediaTransportFactory::IsSupported(config) to let the
implementation decide whether the current factory can support a given
setting
2) Add support for multiple x-mt lines. Right now the support is
minimal: we only look at the first line (because we only allow single
media transport factory). In the future, when RtpMediaTransport is
introduced, this may and will change.
3) Allow multiple MediaTransportFactories and add fallback to RTP if
media transport is not supported.

Current solution provides backward compatibility for the 2 above
extensions.

Bug: webrtc:9719
Change-Id: I82a469fecda57effc95d7d8191f4a9e4a01d199c
Reviewed-on: https://webrtc-review.googlesource.com/c/124800
Commit-Queue: Peter Slatala <psla@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26882}
2019-02-27 22:45:30 +00:00
13e570fcb0 Add a parser for the x-mt line.
This change adds a parser for the x-mt line to the WebRTC SDP, and adds a collection in the SessionDescription for media transport.

x-mt line contains information about media transport settings.

This is an experimental line.

This change will be followed up by two other changes:
* Setting the offer with x-mt
* Using the x-mt line to pass it to the media transport

Bug: webrtc:9719
Change-Id: I46568610d4092a69ada7b7c1d3987d698ddba0be
Reviewed-on: https://webrtc-review.googlesource.com/c/124601
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Commit-Queue: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26881}
2019-02-27 21:00:58 +00:00
4f6ef1894e Added underscore to dtls_transport_unittest.cc.
Bug: webrtc:9860
Change-Id: Ic58361ae8daf44666af51708e6fd3f586f25c6df
Reviewed-on: https://webrtc-review.googlesource.com/c/124625
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26880}
2019-02-27 18:55:15 +00:00
2c7964832e Remove rtc::TimeMillis() call from ALR detector.
We want to avoid system clock dependencies in congestion
controllers as it makes it harder to test them. This CL removes
a rtc::TimeMillis() call from the AlrDetector class and removes
dependencies on rtc_base_approved as it exposes time_utils.h.

Bug: None
Change-Id: Ie50a27399c05a0c50cdc17ad142db884b94ee918
Reviewed-on: https://webrtc-review.googlesource.com/c/124491
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26879}
2019-02-27 16:14:11 +00:00
7307824785 Rolling third_party/winsdk_samples_v71.
Bug: webrtc:10355
Change-Id: I252edd65c41595b6f21a2f6e2f6997b46c1b05bf
Reviewed-on: https://webrtc-review.googlesource.com/c/124741
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26878}
2019-02-27 15:24:24 +00:00
493a650b1e Propagate base minimum delay from video jitter buffer to webrtc/api.
On api level two methods were added to api/media_stream_interface.cc on VideoSourceInterface,
GetLatency and SetLatency. Latency is measured in seconds, delay in milliseconds but both describes
the same concept.


Bug: webrtc:10287
Change-Id: Ib8dc62a4d73f63fab7e10b82c716096ee6199957
Reviewed-on: https://webrtc-review.googlesource.com/c/123482
Commit-Queue: Ruslan Burakov <kuddai@google.com>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26877}
2019-02-27 15:08:34 +00:00
48e7065ac6 Remove default IDs for RTP extensions from rtp_parameters.h
One-byte RTP extensions may only have IDs in the range 1-14.
For higher IDs, the two-byte format must be used.
If default IDs are set for all extensions, once 15 extensions are
defined by the code, some extensions will have IDs greater than 14.
This will happen even if only one extension actually ends up being
offered, so long as it's that unfortunate RTP extension.
It's better to dynamically assign the IDs to those extensions we
actually offer. The code that assigns the IDs is currently
distributed ( WebRtcVoiceEngine::GetCapabilities() and
WebRtcVideoEngine::GetCapabilities()), and without a bigger
refactoring effort would produce some ID collisions and mismatches.
Those are already handled by MergeRtpHdrExts(), so so that
should not be a problem.

Bug: webrtc:10288
Change-Id: I087f1ed5baa9fd61fd5556f1d82f540304ec6b93
Reviewed-on: https://webrtc-review.googlesource.com/c/122480
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26876}
2019-02-27 14:33:03 +00:00
1a7a4afd13 Fix encoded image data injectors.
In encoded image data injectors use the last bytes of the payload,
instead of the first.

Rewriting first bytes of the video frames payload caused problems
as somewhere first are used to check if the frame is key-frame
and also to parse QP values.

Bug: webrtc:10138
Change-Id: I59b7313ee54a33b31f842ec28ef8d831fe24eea5
Reviewed-on: https://webrtc-review.googlesource.com/c/124490
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26875}
2019-02-27 13:23:23 +00:00
aec663ed0d Fix video_loopback tool with different TL numbers in simulcast streams
Bug: None
Change-Id: I7dd521dc66b41f5e68e33378ab4c0e8507679cf9
Reviewed-on: https://webrtc-review.googlesource.com/c/124660
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26874}
2019-02-27 12:22:59 +00:00
28221dee85 Fix more -Wextra-semi.
Chromium has enabled -Wextra-semi on Android, iOS and Windwos builds:
https://chromium-review.googlesource.com/c/1489138
https://chromium-review.googlesource.com/c/1489180
https://chromium-review.googlesource.com/c/1489102

This CL fixes some minor problems in WebRTC and it is a follow-up of
https://webrtc-review.googlesource.com/c/src/+/123560 and
https://webrtc-review.googlesource.com/c/124440.

Bug: webrtc:10355, chromium:926235
Change-Id: Ie9e49077a72c783c3e0fbc21bbe237d7338407e4
Reviewed-on: https://webrtc-review.googlesource.com/c/124680
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26873}
2019-02-27 11:36:23 +00:00
5cceaa1294 Remove iOS 9 support from mb config
This is not needed as all builders for iOS 9 were removed.

This CL depends on:
https://chromium-review.googlesource.com/c/chromium/tools/build/+/1488734

No-Try: True
Bug: webrtc:10291
Change-Id: Ie1e1e5bfbe93f05c1128322540ed520cde564854
Reviewed-on: https://webrtc-review.googlesource.com/c/124487
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Artem Titarenko <artit@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26872}
2019-02-27 11:33:13 +00:00
db42ed299a Add RELATIVE_ARRIVAL_DELAY histogram mode to DelayManager.
- This mode estimates relative packet arrival delay for each incoming packet and adds that value to the histogram.
- The histogram buckets are 20 milliseconds each instead of whole packets.
- The functionality is enabled with a field trial for experimentation.

Bug: webrtc:10333
Change-Id: I8f7499c56802fc1aa1ced2f5310fdd2ef1403515
Reviewed-on: https://webrtc-review.googlesource.com/c/123923
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26871}
2019-02-27 10:15:14 +00:00
d00405f89a Drop support for link-time injection of the rtc::TaskQueue::Impl
Bug: webrtc:10191
Change-Id: I1b975e8a2230dd45828a4e7f4d5a86f61164445a
Reviewed-on: https://webrtc-review.googlesource.com/c/124121
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26870}
2019-02-27 10:07:34 +00:00
dda5fdcb82 Fix vp8 simulcast screenshare and perf tests for it
Simulcast screenshare appears broken due to unrelated changes. It
implicitly relied on SimulcastEncoderAdapter fallback, which happened before
if streams had same resolution. It's not the case anymore. Thus, this CL
adds checks for different frame-rate in simulcast streams.

FullStackTests are also updated to use actual parameters.

Bug: none
Change-Id: I2c1ddb1b39edb96464a0915dfcb9cb4e18844187
Reviewed-on: https://webrtc-review.googlesource.com/c/124494
Reviewed-by: Mirta Dvornicic <mirtad@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26869}
2019-02-27 09:59:12 +00:00
08f6a6c672 Import proto_library.gni when rtc_enable_protobuf is true
Import proto_library.gni when rtc_enable_protobuf is true instead of when
build_with_mozilla is false.

Makes it maybe easier to reason about the intention (e.g. intention is to not
compile any protobuf in, hence flag rtc_enable_protobuf)

The build file could not work if build_with_mozilla = true but
rtc_enable_protobuf = true.

Bug: webrtc:10338
Change-Id: I26e5983bd1519aa46c308b11796d518de5ef7597
Reviewed-on: https://webrtc-review.googlesource.com/c/123763
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26868}
2019-02-27 09:56:42 +00:00
e12a1c7644 Adding GetStats APIs for senders/receivers.
Bug: webrtc:10345
Change-Id: Id9c10db91d94323ffe8b9e4e540411837d56aaa4
Reviewed-on: https://webrtc-review.googlesource.com/c/124493
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Peter Hanspers <peterhanspers@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26867}
2019-02-27 09:29:29 +00:00
7b3f4a2035 Remove unused |keyframe_interval| from codec tests.
Bug: webrtc:10349
Change-Id: Iada8c8a1824f6e5424f503bb67b00382069b1dbd
Reviewed-on: https://webrtc-review.googlesource.com/c/124486
Reviewed-by: Mirta Dvornicic <mirtad@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26866}
2019-02-27 07:26:30 +00:00
f54e30b596 Add const to variables in openssl_stream_adapter.cc that can use it.
This change simply adds const to all the variables that can use it. It seemed
like a good idea to enforce const correctness where possible in the TLS stack.

Bug: webrtc:9860
Change-Id: Iabfe1e26647b0c21e2f209e0e0f96d0ec7465e7a
Reviewed-on: https://webrtc-review.googlesource.com/c/124623
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26865}
2019-02-27 02:44:09 +00:00
619b29423c RtpSender's RtpParameters were invalidated in a call to SLD/SRD.
RtpSender uses a transactional model when getting and setting RtpParameters.
One must call GetParameters() and then can use the returned object in a
subsequent call to SetParameters().
PeerConnection was calling GetParameters() and SetParameters() during
negotiation in SetLocalDescription and SetRemoteDescription effectively
invalidating any parameters that the client previously held.
This change introduces an internal way for the platform to modify
parameters without invalidating the transactional model, provided that
the modification is not severe.
Ex. removing simulcast layers is a severe modification and will
invalidate any outstanding parameters.

Bug: webrtc:10339
Change-Id: I362e8ca4d9556e04a1aa7a3e74e2c275f8d16fbc
Reviewed-on: https://webrtc-review.googlesource.com/c/124504
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Amit Hilbuch <amithi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26864}
2019-02-27 01:46:50 +00:00
d6f61dd787 Add ::Connect method to the media transport interface
In order to enable ::Connect method, we also need to split the factory and create a method that creates media transport, but doesn't connect it.

So far media transport was connecting right away after creation. We would however want to expose some of the settings in SDP. SDP is created before connection is connected (and before ICE transport is created), and so we would like to be able to get the settings from the caller to the callee.

Bug: webrtc:9719
Change-Id: I1dc2f30c9a2dae8b3db04f14c8b334cd1b3ab5ab
Reviewed-on: https://webrtc-review.googlesource.com/c/124517
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Commit-Queue: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26863}
2019-02-26 22:53:28 +00:00
6a7baa7d0f Remove VCMEncodedFrameCallback and VCMGenericEncoder
This CL takes a few parts of VCMEncodedFrameCallback and
VCMGenericEncoder and folds some aspect directly into
VideoStreamEncoder. Parts related to timing frames are extracted
into a new class FrameEncodeTimer that explicitly handles that.

Bug: webrtc:10164
Change-Id: I9b26f734473b659e4093c84c09fb0ed441290e40
Reviewed-on: https://webrtc-review.googlesource.com/c/124122
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26862}
2019-02-26 21:34:47 +00:00
c9d0b08982 Respects min ALR probing interval.
In a previous refactor, the ALR probe timestamp update was moved
after a return statement by accident. This CL fixes this.

The impact of this bug is limited as there are several other criteria
that has to be fulfilled for sending ALR probes.

Bug: None
Change-Id: Ia85e6ff9d782c1c4722a3df7e01ed803cf86b11d
Reviewed-on: https://webrtc-review.googlesource.com/c/124489
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26861}
2019-02-26 18:51:04 +00:00
1a16da1cf2 Remove deprecated CreateMediaTransport method
Bug: webrtc:9719
Change-Id: I4aef407c4770fc98abcbc114b87e73bbf13d8f56
Reviewed-on: https://webrtc-review.googlesource.com/c/124021
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Commit-Queue: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26860}
2019-02-26 18:32:22 +00:00
39b69ccf14 Add field trial for adding remote ufrag CreatePermission
This patch adds a field trial for appending an extra
attribute which contains the remote ufrag for the permission.

The attribute is put into the comprehension-optional range
so that a TURN server should ignore it if it doesn't know if.
https://tools.ietf.org/html/rfc5389#section-18.2

Bug: webrtc:10350
Change-Id: I7d62ab94e947bddd670d8eb53d4ff89b1d1e275c
Reviewed-on: https://webrtc-review.googlesource.com/c/123901
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26859}
2019-02-26 17:52:58 +00:00
546ee613a4 clang-tidy helper script, with clang static analyzer included.
This CL makes it easy to invoke the tool for single cc files,
without having to install or configure anything.
It boils down to:
% tools_webrtc/clang_tidy.py path/to/file.cc [clang-tidy-args...]
If any issue is encountered, a colored diagnostic will be printed.
By default, it also includes checks from clang analyzer.

Warning! This is linux-only, and uses an old version of
clang-tidy based on LLVM 5.0. USE WITH CARE.

bug: webrtc:8793
Change-Id: I8964f2b939408326cc349c5f0ac0dfcff2da24c5
Reviewed-on: https://webrtc-review.googlesource.com/c/120221
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26858}
2019-02-26 17:06:40 +00:00
b7cb7b5e94 Remove VCMEncoderDataBase and put remaining code into VideoStreamEncoder
This is a reland of
https://webrtc-review.googlesource.com/c/src/+/123920
Patch set 1 is identical to the previous CL, additional patch sets fix
the bug that was introduced and adds test coverage.

Since this "data base" only holds a single encoder instance it just
serves to confuse object ownership. Removing it and giving ownership
of generic encoder instance to VideoStreamEncoder.

This CL also removes VideoSender interface from video_coding_impl.h,
which is mostly a leftover from
https://webrtc-review.googlesource.com/c/src/+/123540

Bug: webrtc:10164
Change-Id: Ieaf23457d69af0d6356b70461112892b14760b19
Reviewed-on: https://webrtc-review.googlesource.com/c/124488
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26857}
2019-02-26 16:19:54 +00:00
695af944c4 Add reentrancy comment for critical section.
Change-Id: I921484802d8c73c5aa28138726a8826cc3689fd8

Bug: webrtc:10347
Change-Id: I921484802d8c73c5aa28138726a8826cc3689fd8
Reviewed-on: https://webrtc-review.googlesource.com/c/123767
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Ruslan Burakov <kuddai@google.com>
Cr-Commit-Position: refs/heads/master@{#26856}
2019-02-26 15:27:32 +00:00
fee13e8c0d Log pacer values to verbose log
The metrics of interest are the pacer rate, both normally and during a
queue drain, as well as padding rate.

Bug: None
Change-Id: I9c36219f63ce61b46f20d42678e0d97cb2a1873c
Reviewed-on: https://webrtc-review.googlesource.com/c/123195
Commit-Queue: Evan Shrubsole <eshr@google.com>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Konrad Hofbauer <hofbauer@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26855}
2019-02-26 15:22:18 +00:00
12ae4f4d50 Introduce possibility to poll stats and notify analyzers.
This CL introduces the possibility to poll the 2 peer connections
at constant intervals.

It also introduces a dummy AudioQualityAnalyzer that will have to
be implemented in a follow-up CL and it moves every type of the
test framework inside the webrtc::test namespace.

Bug: webrtc:10138
Change-Id: I40acf7894bd67ea5229baba2d2cf18cd8ef65e67
Reviewed-on: https://webrtc-review.googlesource.com/c/123441
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26854}
2019-02-26 14:43:31 +00:00
2684ab3db0 Test default TaskQueue implementation via TaskQueueBase interface
Bug: webrtc:10191
Change-Id: I97a73311790e8ceac00d5575dd124ad8ad76503f
Reviewed-on: https://webrtc-review.googlesource.com/c/124400
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26853}
2019-02-26 14:01:45 +00:00
22dab11270 Remove Legacy ADM from AppRTC mobile
The Legacy ADM has remained to be available for testing. Now we are
ready to move on to using only the Java ADM.

Bug: webrtc:7452
Change-Id: Ic95b04b933e165f3c16b587a44384a2c965ef16c
Reviewed-on: https://webrtc-review.googlesource.com/c/123921
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Paulina Hensman <phensman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26852}
2019-02-26 13:31:14 +00:00