Commit Graph

24768 Commits

Author SHA1 Message Date
2365936b87 Hide the AudioEncoderCng class behind a create function
And put codecs/cng/webrtc_cng.h in a non-public build target while
we're at it.

Bug: webrtc:8396
Change-Id: I9f51dffadfb645cd1454617fad30e09d639ff53c
Reviewed-on: https://webrtc-review.googlesource.com/c/108782
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25486}
2018-11-02 13:00:05 +00:00
42e7d9c929 Enable rtc event log in *_loopback tools running with renderers
Bug: none
Change-Id: I6debe89fa972474be8862c568a23e491b678833d
Reviewed-on: https://webrtc-review.googlesource.com/c/109004
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25485}
2018-11-02 12:47:09 +00:00
f8ba95ecee Add field trial for vp8 cpu speed configuration for arm.
Bug: none
Change-Id: I90c2475a229a1f10016e2ad84029e19b5a4f9966
Reviewed-on: https://webrtc-review.googlesource.com/c/107340
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25484}
2018-11-02 12:17:53 +00:00
56ef305b67 Move event logging of config into AudioSendStream.
It was previously logged in Call, but streams are not always created
with the full configuration, which caused header extensions to be
missing from the log.

Bug: webrtc:9885
Change-Id: I86c0424004c4629ebab0f6b155b83fb90e15b131
Reviewed-on: https://webrtc-review.googlesource.com/c/108601
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25483}
2018-11-02 12:04:24 +00:00
6bf20549bb Roll chromium_revision 734e273d43..e842ab5f98 (604373:604874)
Change log: 734e273d43..e842ab5f98
Full diff: 734e273d43..e842ab5f98

Changed dependencies
* src/base: b183a851a2..21e62a143e
* src/build: 725a228df7..6a59547c6a
* src/ios: cac0c52414..e75336fdcb
* src/testing: ee1dadff8d..5c39abcfdc
* src/third_party: e723f78f47..df2b6d7a3e
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/e3f4b1f5ee..971689c059
* src/third_party/depot_tools: 9afc6490c1..fec80c4135
* src/tools: a761264246..7abb2b49bb
DEPS diff: 734e273d43..e842ab5f98/DEPS

No update to Clang.

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

Change-Id: Ia16e693acfb129aecbbbcb40486880e46d94f494
Reviewed-on: https://webrtc-review.googlesource.com/c/109100
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@{#25482}
2018-11-02 11:08:55 +00:00
aa3c1cc927 Delete _strnicmp. Uses replaced with abseil functions.
The replacements are absl::EqualsIgnoreCase and
absl::StartsWithIgnoreCase. Also delete the alias
RtpUtility::StringCompare.

Bug: webrtc:6424
Change-Id: I4bed71540264450f85137ad0c2564125c5c6213f
Reviewed-on: https://webrtc-review.googlesource.com/c/109006
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25481}
2018-11-02 11:03:38 +00:00
41f00de26b Fix chromium roll
BUG=NONE

Change-Id: I7df047ee33700c2ad868a0f36b6e97f08e55a62e
Reviewed-on: https://webrtc-review.googlesource.com/c/109010
Reviewed-by: Patrik Höglund <phoglund@google.com>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25480}
2018-11-02 09:18:52 +00:00
6b9dec0d16 Delete rtc::Pathname
Bug: webrtc:6424
Change-Id: Iec01dc5dd1426d4558983b828b67af872107d723
Reviewed-on: https://webrtc-review.googlesource.com/c/108400
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25479}
2018-11-02 08:34:39 +00:00
d4a68bd932 Implement Injectable Audio Codecs for the Java SDK.
Support Injectable Audio Codecs from the Java SDK.
The PeerConnectionFactory.Builder defaults to
BuiltinAudio(Encoder|Decoder)Factory, but other implementations are
permitted via the Audio(Encoder|Decoder)FactoryFactory interface.

Bug: webrtc:9916
Change-Id: I61ad4a6e57666bc1be79daf5f40b129e0eacad84
Reviewed-on: https://webrtc-review.googlesource.com/c/107711
Commit-Queue: Lennart Kolmodin <kolmodin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25478}
2018-11-02 08:25:39 +00:00
3e4c77f1c1 Fix AGC2 fixed-adaptive gain controllers order.
This CL refactors AGC2 and fixes the order with which the fixed
and the adaptive digital gain controllers are applied - i.e., fixed
first, then adaptive and finally limiter.

FixedGainController has been removed since we need to split the
processing done by the gain applier and the limiter.
Also, GainApplier and Limiter are easy enough to be used without
a wrapper and a wrapper would need 2 separated calls in the right
order - i.e., error prone.

FrameCombiner in audio mixer has been adapted and now only uses the
limiter (which is what is needed since no gain is applied).

The unit tests for FixedGainController have been moved to
gain_controller2_unittests. They have been re-adapted and
ChangeFixedGainShouldBeFastAndTimeInvariant has been re-tuned.

Bug: webrtc:7494
Change-Id: I4d7daeae917257ac019a645b74deba6642f77322
Reviewed-on: https://webrtc-review.googlesource.com/c/108624
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25477}
2018-11-01 20:35:36 +00:00
096d016acc Update MultiplexEncoderAdapter to use EncoderInfo
Bug: webrtc:9890
Change-Id: I8d02f0f25e515ec06e0e81624f80c12f95b13c3d
Reviewed-on: https://webrtc-review.googlesource.com/c/109024
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Emircan Uysaler <emircan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25476}
2018-11-01 17:32:27 +00:00
58df0ada6e Add guards to VideoCaptureDS::Init for when pins are null
GetInputPin() and GetOutputPin() do not guarantee returning non-null pins.
Should either of them return null during Init() we're better off returning an
error than allowing unsafe behavior further ahead.

Bug: webrtc:9941
Change-Id: I25858f0555334b4ef99801f83454931384695bf6
Reviewed-on: https://webrtc-review.googlesource.com/c/108603
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25475}
2018-11-01 17:11:26 +00:00
9b5b070817 Use EncoderInfo in SimulcastEncoderAdapter
Remove use of deprecated methods.

Bug: webrtc:9890
Change-Id: I96cce2fc94cb4c4ac07ffc882f5d2b84e279e3b6
Reviewed-on: https://webrtc-review.googlesource.com/c/108123
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25474}
2018-11-01 16:05:57 +00:00
4eb4112508 Plug-in media transport state listener
IceConnected state (transport state) now includes the state of the
MediaTransport.

This is a first change of two. Second change will add state change
signals to the PeerConnectionInterface informing separately about
ice+media transport vs ice+dtls.

Bug: webrtc:9719
Change-Id: I5731530073e8f26dfc8b188778d268b815da7052
Reviewed-on: https://webrtc-review.googlesource.com/c/108901
Commit-Queue: Peter Slatala <psla@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25473}
2018-11-01 15:52:56 +00:00
189013bef9 Update QualityTestVideoEncoder to use GetEncoderInfo()
Bug: webrtc:9890
Change-Id: I1483df7c505c08de7c8a8b254dd1a0c5c03775e4
Reviewed-on: https://webrtc-review.googlesource.com/c/109008
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25472}
2018-11-01 15:44:20 +00:00
449afd9374 Updated ScopedVideoEncoder to use GetEncoderInfo()
Bug: webrtc:9890
Change-Id: Icca1cc1df6a227a30a5f54228fa33a9e63e702e0
Reviewed-on: https://webrtc-review.googlesource.com/c/109007
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25471}
2018-11-01 15:43:15 +00:00
5e784616e0 Make the extra seturation margin configurable.
The extra saturation margin is a setting for the SaturationProtector
in GainController2. The higher it is, the less gain GC2 will apply. In
this CL we pipe the setting up to audio_processing.h. Now the setting
can be set at a high level.

Also in this CL add a few (missing, they should have been there
already) tests for the GC2 and GC2 with saturation margin.

Bug: webrtc:7494
Change-Id: I1b61f1662e6c6a8817fd5b0e845339694bf8d50d
Reviewed-on: https://webrtc-review.googlesource.com/c/109001
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25470}
2018-11-01 15:12:11 +00:00
b1e031a156 JitterEstimator: Remove old LowRate exp and add trial for upper bound.
The frame time deltas are now capped based on the current noise.
This has been tested in various conditions using both screen content
and typical mobile video settings, to produce delays that are not overly
high screen content, and simultaneously not negatively affect mobile
calls on really bad network that may have high natural jitter.

Bug: webrtc:9898
Change-Id: I51ad279af156aba1b5cc75ae203334a34bce9d48
Reviewed-on: https://webrtc-review.googlesource.com/c/107349
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25469}
2018-11-01 14:51:38 +00:00
15ca5a9533 Add implicit conversion between rtc:PacketTime and int64_t.
This is a preparation for deleting rtc::PacketTime. Next step, after
downstream code has been updated to not access the |timestamp| member,
is to make rtc::PacketTime an alias for int64_t.

Also delete the unused member rtc::PacketTime::not_before.

Bug: webrtc:9584
Change-Id: Iba9d2d55047d69565ad62b1beb525591fd432ae2
Reviewed-on: https://webrtc-review.googlesource.com/c/108860
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25468}
2018-11-01 14:28:24 +00:00
96965aeba9 Add ability to enable frame dumping decoder via field trial.
--force_fieldtrial=/WebRTC-DecoderDataDumpDirectory/./ will create a
file ./webrtc_receive_stream_[ssrc].ivf containing the exact data that
is fed to the decoder.

Bug: None
Change-Id: I4042298c9b851fc4b61c417652315fa2610de1ed
Reviewed-on: https://webrtc-review.googlesource.com/c/107644
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25467}
2018-11-01 14:13:21 +00:00
fe45da4f04 Remove WebRTC-VP8-GfBoost field trial.
This is a cleanup CL related to the work tracked by 9946.

Bug: webrtc:9946
Change-Id: I3d879196af83856ece1418fa786aab03a3dd3c8c
Reviewed-on: https://webrtc-review.googlesource.com/c/108820
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25466}
2018-11-01 13:46:27 +00:00
af6d741fe1 Makes send time information in feedback non-optional.
This makes it safer to reason about the common case where send
time information is available. We don't have to either assume that
it's available, or check it everywhere the PacketResult struct is used.

To achieve this, a new field is added to TransportPacketsFeedback
and a new interface is introduced to clearly separate which field is
used. A possible followup would be to introduce a separate struct.
That would complicate the signature of ProcessTransportFeedback.

Bug: webrtc:9934
Change-Id: I2b319e4df2b557fbd4de66b812744bca7d91ca15
Reviewed-on: https://webrtc-review.googlesource.com/c/107080
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25465}
2018-11-01 12:39:56 +00:00
be837ac3bc Remove RTPFragmentationHeader from LibvpxVp8Encoder.
This is just a cleanup CL related to the work tracked by 9946.

Bug: webrtc:9946
Change-Id: I9a8347aa382bf44f3cd6c38d89bea0e9d68a50e0
Reviewed-on: https://webrtc-review.googlesource.com/c/108781
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25464}
2018-11-01 11:50:05 +00:00
281276301c Remove deprecated AudioProcessing::GetStatistics function
Additionally, AudioProcessing::GetStatistics(bool) is made pure
virtual and the default implementation in AudioProcessing is removed.

Deprecation PSA:
https://groups.google.com/forum/#!msg/discuss-webrtc/NgqEPvkNuDE/7HtwnMmADgAJ

Bug: webrtc:9947, webrtc:8572
Change-Id: I123402bf7d6c49f3613154c469b818109d8fad43
Reviewed-on: https://webrtc-review.googlesource.com/c/108783
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25463}
2018-11-01 11:21:15 +00:00
4e93329839 Properly setup MockPeerConnectionObserver in tests (continued).
This CL prevents dereferencing potentially null pointer by
setting the pointer in client code.

We can now safely call PeerConnection::Close(), which happens
to trigger OnIceConnectionChange() on the observer.

This is a followup to: https://webrtc-review.googlesource.com/c/src/+/107706

Bug: webrtc:9855
Change-Id: Ieebf8415f0a12fe87d8cd80d1eb06797926005df
Reviewed-on: https://webrtc-review.googlesource.com/c/108785
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25462}
2018-11-01 09:35:07 +00:00
dd20c9c1e3 Add support for screen sharing with PipeWire on Wayland
Currently, when users want to use the screen sharing and are using the
Wayland display server (the default on Fedora distribution), then it
doesn't work, because the WebRTC only includes the X11 implementation.
This change adds the support by using the PipeWire multimedia server.

The PipeWire implementation in WebRTC stays in
screen-capturer-pipewire.c and is guarded by the rtc_use_pipewire build
flag that is automatically enabled on Linux.

More information are included in the relevant commit messages.

Tested on the current Chromium master and Firefox.

The sysroot changes are requested in:
https://chromium-review.googlesource.com/c/chromium/src/+/1258174

Co-authored-by: Jan Grulich <grulja@gmail.com>
Co-authored-by: Eike Rathke <erathke@redhat.com>
Change-Id: I212074a4bc437b99a77bf383266026c5bfae7c4a

BUG=chromium:682122

Change-Id: I212074a4bc437b99a77bf383266026c5bfae7c4a
Reviewed-on: https://webrtc-review.googlesource.com/c/103504
Commit-Queue: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Brave Yao <braveyao@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25461}
2018-11-01 08:46:38 +00:00
7f4dfa4106 Remove locks from AEC2 and move it into private_submodules_
This drops the locks and annotations in EchoCancellationImpl,
now that the interface is no longer externally accessible.


Bug: webrtc:9929
Change-Id: I401256f523340cbabce23a5914ab28ce44179935
Reviewed-on: https://webrtc-review.googlesource.com/c/108602
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25460}
2018-11-01 08:40:16 +00:00
59844ce57e Revert "Use the factory instead of using the builtin code path in VideoCodecInitializer."
This reverts commit be142178aaf6ab4089b4d81c88c3d59c12cca567.

Reason for revert: breaking internal projects

Original change's description:
> Use the factory instead of using the builtin code path in `VideoCodecInitializer`.
> 
> Bug: webrtc:9513
> Change-Id: Ia299ae1044a3ff4c91e208200938cba540bdcea6
> Reviewed-on: https://webrtc-review.googlesource.com/c/94782
> Commit-Queue: Jiawei Ou <ouj@fb.com>
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Anders Carlsson <andersc@webrtc.org>
> Reviewed-by: Seth Hampson <shampson@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25456}

TBR=brandtr@webrtc.org,magjed@webrtc.org,sakal@webrtc.org,nisse@webrtc.org,andersc@webrtc.org,tommi@webrtc.org,kthelgason@webrtc.org,sprang@webrtc.org,srte@webrtc.org,perkj@webrtc.org,tkchin@webrtc.org,shampson@webrtc.org,glaznev@webrtc.org,ouj@fb.com,qingsi@webrtc.org

Change-Id: I8040ccabe3ae6464d72c7696adb663c1dd275b63
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9513
Reviewed-on: https://webrtc-review.googlesource.com/c/108980
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Commit-Queue: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25459}
2018-11-01 04:46:02 +00:00
7852d291c9 Improve the documentation of MdnsResponderInterface and rename MDns.*
to Mdns.*.

MdnsResponderInterface now explicitly requires the reference counting
of created names to allow the coexistence of multiple users of the same
responder where one user would not remove identical names created by
others.

MDns.* is also renamed to Mdns.* per the style guide.

TBR=aleloi@webrtc.org

Bug: webrtc:9605
Change-Id: I047fc41f34de8d4e97c980409a7f373769c4c252
Reviewed-on: https://webrtc-review.googlesource.com/c/101921
Commit-Queue: Qingsi Wang <qingsi@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25458}
2018-11-01 02:39:59 +00:00
eb2c6415a9 Delete the default implementations of MediaTransportInterface methods.
This change deletes the default implementations of state and data
channel methods (SetMediaTransportStateCallback, SendData, CloseChannel,
and SetDataSink).  It adds stub implementations to LoopbackMediaTransport
and FakeMediaTransport.

Bug: webrtc:9719
Change-Id: I49b7780c055b552330546b460c2e79ce8df81833
Reviewed-on: https://webrtc-review.googlesource.com/c/108940
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25457}
2018-11-01 00:15:52 +00:00
be142178aa Use the factory instead of using the builtin code path in VideoCodecInitializer.
Bug: webrtc:9513
Change-Id: Ia299ae1044a3ff4c91e208200938cba540bdcea6
Reviewed-on: https://webrtc-review.googlesource.com/c/94782
Commit-Queue: Jiawei Ou <ouj@fb.com>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25456}
2018-10-31 22:47:02 +00:00
838643550f Roll chromium_revision 6271fcdc14..734e273d43 (604273:604373)
Change log: 6271fcdc14..734e273d43
Full diff: 6271fcdc14..734e273d43

Changed dependencies
* src/base: ac1dbfef97..b183a851a2
* src/build: a075a766e5..725a228df7
* src/ios: a87e88bd78..cac0c52414
* src/testing: 472f01fd15..ee1dadff8d
* src/third_party: abbeec0f77..e723f78f47
* src/tools: 7fb49be1e7..a761264246
DEPS diff: 6271fcdc14..734e273d43/DEPS

No update to Clang.

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

Change-Id: Id3957ddd9edafb37996cdf9acd0f635a89f40d35
Reviewed-on: https://webrtc-review.googlesource.com/c/108941
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#25455}
2018-10-31 21:57:51 +00:00
1f6aa9fd67 Add interfaces for using MediaTransport as the transport for data channels.
Adds the types and methods required for sending and receiving data
channel messages over the media transport.  These are:
 - A DataMessageType to distinguish between text, binary, and control
 messages
 - A parameters struct for sending data messages, which specifies the
 channel id, type, and ordering/reliability parameters
 - A sink for data-channel related callbacks (receive data, begin
 closing procedure, and end closing procedure)
 - A method to set the sink for data channels
 - Methods to open, close, and send on data channels

These methods, combined with the state sink, allow PeerConnection to
implement the DataChannelProviderInterface using MediaTransport as the
underlying transport.

Change-Id: Iccb2ba374594762a5b4f995564e2a1ff7d8805f5
Bug: webrtc:9719
Reviewed-on: https://webrtc-review.googlesource.com/c/108541
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25454}
2018-10-31 18:44:31 +00:00
062a691cae Roll chromium_revision 9996ac8918..6271fcdc14 (604166:604273)
Change log: 9996ac8918..6271fcdc14
Full diff: 9996ac8918..6271fcdc14

Changed dependencies
* src/base: 775312e16c..ac1dbfef97
* src/build: 277ad43041..a075a766e5
* src/ios: f10a5081bf..a87e88bd78
* src/testing: 2ac249e787..472f01fd15
* src/third_party: abc5ed9323..abbeec0f77
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/9662809abb..e3f4b1f5ee
* src/tools: 677e8f37d2..7fb49be1e7
DEPS diff: 9996ac8918..6271fcdc14/DEPS

No update to Clang.

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

Change-Id: I5b24efd93f5d1505d95050264d9b1f141b31cac1
Reviewed-on: https://webrtc-review.googlesource.com/c/108841
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#25453}
2018-10-31 16:37:57 +00:00
9f9562592f When SDES is used, pass pre-shared key to media transport.
This allows to use secure, end to end communication if SDES cryptos are
passed. MediaTransport can use a derived key to secure its own
communication.

Bug: webrtc:9719
Change-Id: If1a20b136b3b4af0cb24f10b52fc5ce1eb31daa2
Reviewed-on: https://webrtc-review.googlesource.com/c/108504
Commit-Queue: Peter Slatala <psla@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Reviewed-by: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25452}
2018-10-31 16:04:16 +00:00
71822866c6 Allow FakeNetworkPipe to wake up its processing thread
Bug: webrtc:9630
Change-Id: I2b09593f175e3f3e1fe0d990515aa70c2481161b
Reviewed-on: https://webrtc-review.googlesource.com/c/95144
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25451}
2018-10-31 15:20:57 +00:00
693432d9fa Add obj-c mapping from native configuration to RTCConfiguration
Bug: webrtc:9719
Change-Id: Id48c3760be516c47e8d4c7267d84111385924776
Reviewed-on: https://webrtc-review.googlesource.com/c/108744
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25450}
2018-10-31 14:03:58 +00:00
e6caa9fbf6 export RTCRtpTransceiverInit
Bug: none
Change-Id: Ia21d7635d5016e1db277f7491c4bbcb1e6ad23ec
Reviewed-on: https://webrtc-review.googlesource.com/c/105943
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25449}
2018-10-31 12:20:05 +00:00
ed45c57d98 Corrects audio overhead correction in Scenario test.
This makes the calculation more similar to the one in WebRTCVoiceEngine.

Bug: webrtc:9510
Change-Id: Ibca69842726e51c07b9cc9550ff9f15a24161e28
Reviewed-on: https://webrtc-review.googlesource.com/c/107653
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25448}
2018-10-31 11:06:39 +00:00
69807e8871 Depend directly on destination targets.
Makes 'gn check' happy.
Followup to https://webrtc-review.googlesource.com/c/src/+/106820

Bug: webrtc:5876, webrtc:9855
Change-Id: I33fa2c31ba26dc10c9a9c17da0ffed255c1f4d5b
Reviewed-on: https://webrtc-review.googlesource.com/c/108760
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25447}
2018-10-31 10:21:40 +00:00
a8fa2d061f Move some methods from StreamInterface to FifoBuffer
Moved methods: GetReadData, ConsumeReadData, GetWriteBuffer,
ConsumeWriteBuffer, GetWriteRemaining.

These methods represented an optional interface for reading and
writing streams, intended to optimize certain use cases. However,
it was implemented only in the FifoBuffer subclass, and the few
users of that class all have a concrete FifoBuffer, and hence
don't need the methods on the abstract StreamInterface.

Bug: webrtc:6424
Change-Id: I6de74d1a9205fcb7037ad84e24679d4a27c1d219
Reviewed-on: https://webrtc-review.googlesource.com/c/108621
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25446}
2018-10-31 10:11:39 +00:00
21cddffd99 Harmonize paths to dependent targets.
This CL consistently use:
 * relative paths for WebRTC dependent targets (test_support)
 * absolute paths for shared dependent targets (abseil)
This is a necessary (but insufficient) step to build WebRTC tests
from Chromium tree (rtc_include_tests=true), since test/ doesn't
sit anymore in the top level directory.

We also make sure that target declarations and uses are
consistent in regard to build_with_chromium flag.

Bug: webrtc:9943
Bug: webrtc:9855
Change-Id: I21dea98894df2fd4bfe2fd7ee7b71ba971e0ab5b
Reviewed-on: https://webrtc-review.googlesource.com/c/108720
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25445}
2018-10-31 10:04:59 +00:00
b32bb959c9 Bugfix: FlexFEC causes retransmit bitrate increase.
When FlexFEC is enabled, sometimes media packet will be recovered by FEC before the actual media packet's arrival. In current implementation this will be considered as packet out of order and nack will be sent, thus cause large increase in retransmit bitrate.
This fix:
1. Avoid sending nack for packet out of order caused by "early" recovered media packets.
2. Save recovered media packet in a set, and do not send nack for these packets.

Bug: None
Change-Id: I008ef4e33668bce6d2cb9ff52b4b5c8e3f349965
Reviewed-on: https://webrtc-review.googlesource.com/c/108090
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25444}
2018-10-31 09:41:26 +00:00
8b7d206d37 AEC3: Decrease latency until the delay has been detected
This CL utilizes the existing, but unused, ability to set
different histogram thresholds for early and late delay
estimation. It does so by tuning the parameters for these.

On top of that, some corrections are added to correctly
handle resets and the use of the hysteresis thresholds.

Bug: webrtc:19886,chromium:896334
Change-Id: I950ac107c124541af8f02b4403f477dda71cc1a1
Reviewed-on: https://webrtc-review.googlesource.com/c/106706
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25443}
2018-10-31 07:29:48 +00:00
f577ab3d38 Roll chromium_revision 7e85c0922c..9996ac8918 (604065:604166)
Change log: 7e85c0922c..9996ac8918
Full diff: 7e85c0922c..9996ac8918

Changed dependencies
* src/base: 0ac1e165f9..775312e16c
* src/build: 850c1eb9da..277ad43041
* src/ios: a5e05fc6f4..f10a5081bf
* src/testing: f28edda73d..2ac249e787
* src/third_party: 39ec02d7f7..abc5ed9323
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/5e1c1c293b..9662809abb
* src/third_party/depot_tools: f170af48e4..9afc6490c1
* src/third_party/libvpx/source/libvpx: 137d99c91f..fa0076282e
* src/tools: 391dbe9476..677e8f37d2
DEPS diff: 7e85c0922c..9996ac8918/DEPS

No update to Clang.

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

Change-Id: I0c530ee5775befa8f8708a9033c5a7ae664aedc4
Reviewed-on: https://webrtc-review.googlesource.com/c/108753
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#25442}
2018-10-31 06:22:40 +00:00
b00b28ee50 Roll chromium_revision 0cb3899c4e..7e85c0922c (603959:604065)
Change log: 0cb3899c4e..7e85c0922c
Full diff: 0cb3899c4e..7e85c0922c

Changed dependencies
* src/base: f716712ed2..0ac1e165f9
* src/build: f7286760a0..850c1eb9da
* src/ios: 69460d9935..a5e05fc6f4
* src/testing: c7923a47de..f28edda73d
* src/third_party: 34d95143ba..39ec02d7f7
* src/tools: a6e1079702..391dbe9476
DEPS diff: 0cb3899c4e..7e85c0922c/DEPS

No update to Clang.

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

Change-Id: I8f6616df1cfb1aa521b830486fe6741dd2bd675b
Reviewed-on: https://webrtc-review.googlesource.com/c/108747
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@{#25441}
2018-10-31 00:35:00 +00:00
b3f887b823 Expose key derivation through a simple interface for use in WebRTC.
This change just wraps the openssl key derivation functions in a simple
interface in a similar way to how we do it for messagedigest.h so we aren't
coupled to openssl in the core implementation.

Bug: webrtc:9917
Change-Id: I8556bd6e38b7da34d93abbe29415c3366f6532ba
Reviewed-on: https://webrtc-review.googlesource.com/c/107981
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25440}
2018-10-30 21:44:28 +00:00
1a92cd7312 Roll chromium_revision 34bb9a9162..0cb3899c4e (603839:603959)
Change log: 34bb9a9162..0cb3899c4e
Full diff: 34bb9a9162..0cb3899c4e

Changed dependencies
* src/base: a835d3f466..f716712ed2
* src/build: 093f10792c..f7286760a0
* src/ios: 60e76278e8..69460d9935
* src/testing: 778c8af312..c7923a47de
* src/third_party: 2d4ceadd57..34d95143ba
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/36a23a7b28..5e1c1c293b
* src/third_party/depot_tools: 46f20cd390..f170af48e4
* src/tools: 84e16ce590..a6e1079702
DEPS diff: 34bb9a9162..0cb3899c4e/DEPS

No update to Clang.

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

Change-Id: I234ff87ced5a09d9be9ab541de452029fbc51206
Reviewed-on: https://webrtc-review.googlesource.com/c/108680
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#25439}
2018-10-30 18:36:54 +00:00
c78b0ea615 Create a MediaTransportState enum and add a state callback to MediaTransport.
Bug: webrtc:9719
Change-Id: Icf7004be5e3a2784fccc1d910c8b77ea3b3d5156
Reviewed-on: https://webrtc-review.googlesource.com/c/108501
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25438}
2018-10-30 16:25:33 +00:00
eaf337a141 Remove event wait logic from DesktopConfigurationMonitor
This class exposes Wait()-Set() logic to synchronize events.
- There is a bug in checking EventWrapper::Wait() as it returns [1,2]. Negating
these values cause us to always pass timeout checks.
- There is a general problem in this class with waiter. There are 2 scenarios:
1) Lock()-Unlock()-DisplaysReconfigured()
In this scenario, Wait() in DisplaysReconfigured() immediately passes as event
is already signaled. Next Lock() call won't continue until Set() is called in
DisplaysReconfigured(). This blocks capture thread from accessing display until
reconfiguration completes.
2) Lock()-DisplaysReconfigured()-Unlock()
In this scenario, Wait() in DisplaysReconfigured() passes when Unlock() called.
Capture thread accesses display while reconfiguration happens. Note that we are
only delaying the OS delegate thread here. As an experiment, adding Sleep() in
DisplaysReconfigured() results in no change, because it looks like OS uses this
thread for only delegates but not for the actual display switch.

Overall, (1) doesnt seem necessary as (2) already accesses display while
reconfiguration happens. (2) doesn't seem necessary as blocking system delegate
thread doesn't help. Therefore, I changed the class to only protect from race
condition on |desktop_configuration_|.

Bug: chromium:796889
Change-Id: I37263305e5ac629e21ff9e977952cf4a21bae19f
Reviewed-on: https://webrtc-review.googlesource.com/c/108560
Commit-Queue: Emircan Uysaler <emircan@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25437}
2018-10-30 16:05:21 +00:00