Commit Graph

24739 Commits

Author SHA1 Message Date
a9bbd86849 Add a configuration parameter for using the media transport for data channels.
Adds a field |use_media_transport_for_data_channels| to RTCConfiguration.
PeerConnection requires a media transport factory to be set if this bit
is set.  As with |use_media_transport|, the value may not be modified
after setting the local or remote description.

If either |use_media_transport| or |use_media_transport_for_data_channel| is
set, PeerConnection uses its media transport factory when creating a JSEP
transport controller.

PeerConnection stops unconditionally using media transport in
CreateVoiceChannel, as it may be present only for use in data channels.  It uses
the media transport if it is present and |use_media_transport| is set.

Bug: webrtc:9719
Change-Id: I59d4ce8f7531fd19d9c17eefe033f063f663ebcc
Reviewed-on: https://webrtc-review.googlesource.com/c/109041
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25507}
2018-11-05 21:05:22 +00:00
41b5296405 Roll chromium_revision c26ff44a53..bf7ad46dee (605286:605401)
Change log: c26ff44a53..bf7ad46dee
Full diff: c26ff44a53..bf7ad46dee

Changed dependencies
* src/base: f362b035ff..6baa5ba029
* src/build: 8025cd40a2..b906840601
* src/ios: 31a469fd55..435391a2bd
* src/testing: 8334b064bf..a266fda43c
* src/third_party: 4717347898..519b3029bb
* src/third_party/android_build_tools/bundletool: version:0.6.0-cr0..version:0.6.2-cr0
* src/tools: c803d449d4..7b0ad7dabb
DEPS diff: c26ff44a53..bf7ad46dee/DEPS

No update to Clang.

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

Change-Id: I0a73d1029235b208ad98e4b8d257eae933117908
Reviewed-on: https://webrtc-review.googlesource.com/c/109483
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@{#25506}
2018-11-05 19:34:28 +00:00
ee49f7087f Remove VideoEncoder::SetChannelParameters.
The SetChannelParameters function was used when WebRTC supported decoding
with errors, which we no longer do.

This cleanup CL is related to the work tracked by 9946.

Bug: webrtc:9946
Change-Id: Id2d5ed23031388f890c42651bfbe5f79eda701e5
Reviewed-on: https://webrtc-review.googlesource.com/c/108861
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25505}
2018-11-05 17:37:07 +00:00
c22f551842 Remove locks from AECM and move it into private_submodules_
This drops the locks and annotations in EchoControlMobileImpl,
now that the interface is no longer externally accessible.

Additionally, SetEchoPath and GetEchoPath (with surrounding code) is
removed. They are unused.

Bug: webrtc:9929
Change-Id: Ibc6751754614ed39836f6ee6835d7b53dedd828c
Reviewed-on: https://webrtc-review.googlesource.com/c/109025
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25504}
2018-11-05 16:25:09 +00:00
e693381cda Delete struct rtc::PacketTime.
Replaced by a int64_t representing time in us. To aid transition of
downstream code, rtc::PacketTime is made an alias for int64_t.

Bug: webrtc:9584
Change-Id: Ic3a5ee87d6de2aad7712894906dab074f1443df9
Reviewed-on: https://webrtc-review.googlesource.com/c/91860
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25503}
2018-11-05 16:21:39 +00:00
007065522a Removing ancient and unused test scripts and data files
None of these scripts or files have been used in a very long time. They
are removed for the same reason, and since the data files add to the
weight of the resources folder.

Bug: webrtc:5289
Change-Id: Ia14a46aed180f286fa881fe5f60da6973a5fe027
Reviewed-on: https://webrtc-review.googlesource.com/c/109022
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25502}
2018-11-05 16:08:46 +00:00
fd1a2fb8e4 Set RtpRtcp config receive_only in voe::ChannelReceive
Followup to https://webrtc-review.googlesource.com/c/103803

Bug: webrtc:9801
Change-Id: I8467aea241f0470aa116639ddcf5f7ef9a3cc711
Reviewed-on: https://webrtc-review.googlesource.com/c/106860
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25501}
2018-11-05 15:11:00 +00:00
aed3070ad4 Replace GetScalingSettings() with GetEnocderInfo() in TestEncoder
Bug: webrtc:9890
Change-Id: I00c0d95739fe1e90df464a6a7402410ee070f840
Reviewed-on: https://webrtc-review.googlesource.com/c/109028
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25500}
2018-11-05 13:58:14 +00:00
f418bcbcf1 Refactor RtpSender to use absl::string_view for payload name.
Followup to https://webrtc-review.googlesource.com/c/src/+/109006

Bug: webrtc:6424
Change-Id: I1309a7365cf4132ba5d7b80a3847fcafc4fb8d27
Reviewed-on: https://webrtc-review.googlesource.com/c/109120
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25499}
2018-11-05 13:38:48 +00:00
26341990a1 Move MovingAverage to rtc_base/numerics and update it.
This utility class is needed in rtcp_rtp. Instead of reimplementing it
again, the existing class is moved to rtc_base, cleaned from unused
features and extended as required for the new usage.

Bug: webrtc:9914
Change-Id: I3b0d83d08d8fa5e1384b4721a93c6a90781948fd
Reviewed-on: https://webrtc-review.googlesource.com/c/109081
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25498}
2018-11-05 13:02:29 +00:00
a1ead6f2ab Update EncoderProxy to use EncoderInfo
Bug: webrtc:9890
Change-Id: Iadb9cab3bb628480cb83c456f23cc15f6fee8d47
Reviewed-on: https://webrtc-review.googlesource.com/c/109027
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25497}
2018-11-05 11:36:32 +00:00
bf0d0c1b30 Add IPv6 configuration parameters to iOS API
Adds |disableIPV6| and |disableIPV6OnWiFi| properties to
RTCConfiguration

Bug: None
Change-Id: Id59fb2002afadd7817f7caeaa62231bf90ecb274
Reviewed-on: https://webrtc-review.googlesource.com/c/109280
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Anders Carlsson <andersc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25496}
2018-11-05 10:56:10 +00:00
842a2a80d3 Roll chromium_revision 4e7c87b55c..c26ff44a53 (605184:605286)
Change log: 4e7c87b55c..c26ff44a53
Full diff: 4e7c87b55c..c26ff44a53

Changed dependencies
* src/base: c4078779f0..f362b035ff
* src/build: 6f2b519390..8025cd40a2
* src/ios: 5c32d054d8..31a469fd55
* src/testing: 45e5e8d170..8334b064bf
* src/third_party: 91d591567c..4717347898
* src/tools: 2669a3ba6a..c803d449d4
DEPS diff: 4e7c87b55c..c26ff44a53/DEPS

No update to Clang.

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

Change-Id: I28ab01a0ba05f21d6f48201f4009b4c3e8483da4
Reviewed-on: https://webrtc-review.googlesource.com/c/109380
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@{#25495}
2018-11-05 10:19:48 +00:00
e7547d5545 Move MemoryStream to separate source files, and to a test target.
Also delete the base class MemoryStreamBase.

Bug: webrtc:6424
Change-Id: I7eec40ecff17c7c65fdf55882bccb2abaf1d5d84
Reviewed-on: https://webrtc-review.googlesource.com/c/108622
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25494}
2018-11-05 09:00:48 +00:00
9f878f6e97 Roll chromium_revision b58a03341b..4e7c87b55c (605082:605184)
Change log: b58a03341b..4e7c87b55c
Full diff: b58a03341b..4e7c87b55c

Changed dependencies
* src/base: 5ff3786ea3..c4078779f0
* src/build: 72701c13f7..6f2b519390
* src/ios: e5684daeda..5c32d054d8
* src/testing: 7dc2164205..45e5e8d170
* src/third_party: 5bd01b2a3d..91d591567c
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/468ff3e5a0..8c035b35ab
* src/third_party/depot_tools: fec80c4135..7e0b0c498a
* src/tools: a755dc89dd..2669a3ba6a
DEPS diff: b58a03341b..4e7c87b55c/DEPS

No update to Clang.

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

Change-Id: I5186257364cc8fcd4d1b285c03a3e2e80c3b2443
Reviewed-on: https://webrtc-review.googlesource.com/c/109279
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@{#25493}
2018-11-03 17:34:12 +00:00
671341ac66 Roll chromium_revision 35f882550d..b58a03341b (604980:605082)
Change log: 35f882550d..b58a03341b
Full diff: 35f882550d..b58a03341b

Changed dependencies
* src/base: 9efaa251b9..5ff3786ea3
* src/build: 3c45bc6976..72701c13f7
* src/ios: fc76c06ff2..e5684daeda
* src/testing: 5587afd8ba..7dc2164205
* src/third_party: feccd642fe..5bd01b2a3d
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/a6ef719b69..468ff3e5a0
* src/tools: 7f058475ba..a755dc89dd
DEPS diff: 35f882550d..b58a03341b/DEPS

No update to Clang.

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

Change-Id: I89345e4d9f96c243ce3c58b4c5b321a5f3f3aa34
Reviewed-on: https://webrtc-review.googlesource.com/c/109261
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@{#25492}
2018-11-02 23:30:54 +00:00
1bc0b9d03f Roll chromium_revision e842ab5f98..35f882550d (604874:604980)
Change log: e842ab5f98..35f882550d
Full diff: e842ab5f98..35f882550d

Changed dependencies
* src/base: 21e62a143e..9efaa251b9
* src/build: 6a59547c6a..3c45bc6976
* src/ios: e75336fdcb..fc76c06ff2
* src/testing: 5c39abcfdc..5587afd8ba
* src/third_party: df2b6d7a3e..feccd642fe
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/971689c059..a6ef719b69
* src/tools: 7abb2b49bb..7f058475ba
DEPS diff: e842ab5f98..35f882550d/DEPS

No update to Clang.

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

Change-Id: I33fca8ffececbd6d5acabb31ada019ce011488bd
Reviewed-on: https://webrtc-review.googlesource.com/c/109220
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@{#25491}
2018-11-02 18:30:16 +00:00
2039ee7dce Revert "Delete rtc::Pathname"
This reverts commit 6b9dec0d16f2df59fa2820c5ec1341be52fb9f32.

Reason for revert: speculative revert for breaking internal projects

Original change's description:
> 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}

TBR=kwiberg@webrtc.org,nisse@webrtc.org

Change-Id: I3129a81a1d8e36b3e6c67572410bdc478ec4d5e9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:6424
Reviewed-on: https://webrtc-review.googlesource.com/c/109201
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Commit-Queue: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25490}
2018-11-02 16:30:24 +00:00
273d0296a4 Implement data channel methods in LoopbackMediaTransport.
This enables PeerConnection tests to use LoopbackMediaTransport to test
data-channel-over-media-transport code.

Also changes LoopbackMediaTransport to invoke callbacks asynchronously.
This is more accurate, as these callbacks are triggered by network
events.  The caller should not block while the callback executes.

Since LoopbackMediaTransport is used for testing, it provides a
FlushAsyncInvokes() method which may be used to ensure that callbacks
occur deterministically (eg. before checking that data has been
received).

Bug: webrtc:9719
Change-Id: Ib8ea9aebf4a0ad3d5934a6fe4ab33432c68523fd
Tbr: stefan@webrtc.org
Reviewed-on: https://webrtc-review.googlesource.com/c/109060
Commit-Queue: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25489}
2018-11-02 16:15:32 +00:00
0367d1a1fb Adds a field trial parameter to configure waiting time before sending Nack packets.
Currently we send Nack as soon as we see packets out of order(a skip in packet sequence number). Sometimes this is not necessary because these "missing" packets just late for a couple of millisecond, or these packets can be recovered by FEC. This CL add a field trial parameter to configure a delay before sending Nack.

Bug: webrtc:9953
Change-Id: Ia8f5995d874f7c55a74091bc90d8395b9b88e66b
Reviewed-on: https://webrtc-review.googlesource.com/c/109080
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25488}
2018-11-02 14:56:52 +00:00
e40186332e Change to RtcEvent::Copy
Until this CL, RtcEvent::Copy() was a virtual function returning
a std::unique_ptr<RtcEvent>, which was used only in unit tests.
Whenever it was used, the exact sub-class was known, so returning
as a std::unique_ptr<RtcEvent> lost information, but the
additional flexibility of calling Copy on an unknown RtcEvent
was never used. This CL changes the function to a non-virtual one.

Bug: webrtc:8111
Change-Id: I30dbea5f4ec84c41282550aa77a855bfae9ffbd1
Reviewed-on: https://webrtc-review.googlesource.com/c/109140
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25487}
2018-11-02 14:44:36 +00:00
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