Commit Graph

26510 Commits

Author SHA1 Message Date
4eb5c1487e Reland "Remove field trial include from decision logic."
This is a reland of d9f798a6b368024513b0dee5456703849608827d

Original change's description:
> Remove field trial include from decision logic.
> 
> Bug: webrtc:9289
> Change-Id: I2e465bf9eddda8bde50daeb14cfd51405e536ff4
> Reviewed-on: https://webrtc-review.googlesource.com/c/125097
> Reviewed-by: Minyue Li <minyue@webrtc.org>
> Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26925}

Bug: webrtc:9289
Change-Id: I40fbd999fc8495beaeb46799c333f91d72b5be37
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125720
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26978}
2019-03-05 21:26:04 +00:00
07a4f2b267 Merge rtc_task_queue(_api|_impl)? build targets into one
Ignore rtc_link_task_queue_impl flag,
instead use build_with_chromium for custom chromium implementation injection

This changes TaskQueue implementation used in webrtc fuzzers in chromium:
from own webrtc implementation to chromium's.

Bug: webrtc:10191
Change-Id: I63be28b680ae8ea8ee1dbf0c699263c392ce29d3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125196
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26977}
2019-03-05 20:13:38 +00:00
445070818c Add relative_packet_arrival_delay and jitter_buffer_packets_received statistics.
Bug: webrtc:10333
Change-Id: I415e2286b426cbca940fe3a187957531847272ec
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/124780
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26976}
2019-03-05 18:50:34 +00:00
1aa7581701 Replace all usage of rtc::NewClosure with webrtc::ToQueuedTask
Bug: webrtc:10191
Change-Id: I795c8a6f281ccdf60031500a4fb5a411f2afdb70
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125400
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26975}
2019-03-05 18:40:44 +00:00
c1e6e8672a Add metrics::Samples to facilitate easier testing
Currently, tests that verify metrics use a combination of
metrics::NumSamples and metrics::NumEvents to assert which samples
were recorded and how many times they were recorded. This means
that a comprehensive tests has n + 1 assertions for n distinct
samples.

The new metrics::Samples function returns a map of sample --> num
events which can be asserted against using gmock matchers,
achieving better coverage and better test failure messages in just
one line.

Bug: None
Change-Id: I07d4a766654cfc04e414b77b6de02927683a361f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125486
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26974}
2019-03-05 17:51:14 +00:00
d36c08623d Add support for simulcast streams in QualityAnalyzingVideoDecoder.
In QualityAnalyzingVideoEncoder all encoded images that belongs to
unrelated simulcast streams will be marked as to be discarded. So
to support simulcast streams QualityAnalyzingVideoDecoder have to return
black frames when all encoded images in received concatenated encoded
image are marked as to be discarded. Also QualityAnalyzingVideoDecoder
shouldn't pass such encoded image into VideoQualityAnalyzerInterface.

Bug: webrtc:10138
Change-Id: I0f793a7dc04b5d6b10949479bd074b2db86c5c6f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125460
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Yves Gerey <yvesg@google.com>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26973}
2019-03-05 16:33:14 +00:00
6ec2f547d7 Fix mis-spelled TODO items
No-Try: true
Tbr: kwiberg@webrtc.org
Bug: webrtc:10198
Change-Id: Iedcafb89d3fd39a812d410db1b2ed6fac8fade38
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125724
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26972}
2019-03-05 13:45:39 +00:00
7949f215c1 Revert "Removes lock from ChannelSend."
This reverts commit 9b9344742b186b14d87e827e71a1757f4c94b30e.

Reason for revert: Caused test flakiness.

Original change's description:
> Removes lock from ChannelSend.
> 
> The lock isn't really needed as encoder_queue_is_active_ can be checked
> on the task queue to provide synchronization.
> 
> There is one behavioral change due to this: We will not cancel any currently
> pending encoding tasks when we stop sending, they will be allowed to finish.
> 
> Bug: webrtc:10365
> Change-Id: I2b4897dde8d49bc7ee5d2d69694616aee8aaea38
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125096
> Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26963}

TBR=ossu@webrtc.org,srte@webrtc.org

Change-Id: I30409414d3dc7b0be75b14a70dfc4457f5682a8c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10365
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125726
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26971}
2019-03-05 13:42:00 +00:00
9ef5e056f9 Fix target bitrate handling for a single layer VP9 screenshare
For a single layer vp9, the target bitrate was not set correctly. This
may cause a problem for screenshare case, since target bitrate is
respected in that case. If it were less than a min bitrate, the only
spatial layer was permanently disabled.

Bug: webrtc:10257
Change-Id: I0980349adfc2970f810acc51a3e2a31ecbb2bbd2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125681
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26970}
2019-03-05 11:53:09 +00:00
977b3351b9 Injecting Clock into audio streams.
Bug: webrtc:10365
Change-Id: Ia47fd806b84d94fd90b734c87c5e338e36fb695a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125191
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26969}
2019-03-05 10:49:46 +00:00
f23f161950 Roll chromium_revision 5fe3fd14f6..49f30ad2d0 (637538:637641)
Change log: 5fe3fd14f6..49f30ad2d0
Full diff: 5fe3fd14f6..49f30ad2d0

Changed dependencies
* src/ios: 4cd6331572..ec22e14864
* src/testing: 96df2c18bc..8bc8f93a21
* src/third_party: ec0e5afa95..fc0885fbf4
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/8949933bd5..ccc2908752
* src/third_party/depot_tools: cf661acb70..adbf3bef68
* src/third_party/googletest/src: 5ec7f0c4a1..efecb0bfa6
* src/tools: 70796a75fa..1e4e196a1d
DEPS diff: 5fe3fd14f6..49f30ad2d0/DEPS

No update to Clang.

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

Change-Id: I9da6b1611808af14c8d073ea9d46d89b9f60c73f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125700
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@{#26968}
2019-03-05 10:30:46 +00:00
423bae437c Revert "Remove field trial include from decision logic."
This reverts commit d9f798a6b368024513b0dee5456703849608827d.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Remove field trial include from decision logic.
> 
> Bug: webrtc:9289
> Change-Id: I2e465bf9eddda8bde50daeb14cfd51405e536ff4
> Reviewed-on: https://webrtc-review.googlesource.com/c/125097
> Reviewed-by: Minyue Li <minyue@webrtc.org>
> Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26925}

TBR=minyue@webrtc.org,jakobi@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:9289
Change-Id: I439a7477c9b0d94abe815b375b05b7545e3617f1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125683
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26967}
2019-03-05 10:08:49 +00:00
bd7ed4bd5e Include sign for infinity in ToString for data units.
Bug: webrtc:9709
Change-Id: I8a4ee0797dca25dc7c3c414f24ada34c8bcbd7f8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125660
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26966}
2019-03-05 09:42:08 +00:00
44ce4b46f4 Adding a placeholder audio_buffer build target
This CL adds a placeholder build target in preparation for an upcoming
CL (https://webrtc-review.googlesource.com/c/src/+/125081).

Bug: webrtc:10366
Change-Id: I5b226e01d561689acf1624e2c0bad30cc1865011
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125560
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26965}
2019-03-05 09:34:48 +00:00
15845af3cd Reland "Another mock for GetSctpTransport" (and add test)
This reverts commit 727504cf493f9e03952a6e88348976385a49b9e2.

Reason for revert: Added required INCLUDE to fix compile errors.

Original change's description:
> Revert "Another mock for GetSctpTransport"
>
> This reverts commit b2c4700d39fbedaff9bdbee934e1f3f8032bb35b.
>
> Reason for revert: Breaks Chrome build
>
> Original change's description:
> > Another mock for GetSctpTransport
> >
> > Bug: chromium:818643
> > Change-Id: I4ae7826efa7afa8e7b2ecd8a5928071a1b913ded
> > Reviewed-on: https://webrtc-review.googlesource.com/c/125340
> > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> > Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#26941}
>
> TBR=kwiberg@webrtc.org,hta@webrtc.org
>
> Change-Id: I98ddc61ca1e76d69b84138419d91ad9e40b04b1d
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: chromium:818643
> Reviewed-on: https://webrtc-review.googlesource.com/c/125380
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26943}

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

Change-Id: I3eb410427f6660cd00319b43e7096bd634290e8a
Bug: chromium:818643
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125381
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26964}
2019-03-05 09:21:37 +00:00
9b9344742b Removes lock from ChannelSend.
The lock isn't really needed as encoder_queue_is_active_ can be checked
on the task queue to provide synchronization.

There is one behavioral change due to this: We will not cancel any currently
pending encoding tasks when we stop sending, they will be allowed to finish.

Bug: webrtc:10365
Change-Id: I2b4897dde8d49bc7ee5d2d69694616aee8aaea38
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125096
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26963}
2019-03-05 09:00:30 +00:00
c8eeb18d41 Fixes parsing of logs where receive time info is missing.
Bug: None
Change-Id: I42165d3d9fa218f06013e964065a336e04f9f837
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125522
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26962}
2019-03-05 08:19:10 +00:00
07316a6120 Roll chromium_revision 4229a4b64d..5fe3fd14f6 (637436:637538)
Change log: 4229a4b64d..5fe3fd14f6
Full diff: 4229a4b64d..5fe3fd14f6

Changed dependencies
* src/build: dd05c7feb0..80892bfe01
* src/ios: 5de32a3c11..4cd6331572
* src/testing: 6359216acf..96df2c18bc
* src/third_party: 4d043504d2..ec0e5afa95
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/7ad2d7992c..8949933bd5
* src/third_party/depot_tools: 8f418985f1..cf661acb70
* src/tools: 20caf93c4f..70796a75fa
DEPS diff: 4229a4b64d..5fe3fd14f6/DEPS

No update to Clang.

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

Change-Id: Ieb5f99a4c1b7e96f75a7e2392640b522dee611be
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125580
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@{#26961}
2019-03-05 03:05:00 +00:00
1f8e445c47 Roll chromium_revision 5afa522447..4229a4b64d (637301:637436)
Change log: 5afa522447..4229a4b64d
Full diff: 5afa522447..4229a4b64d

Changed dependencies
* src/base: ab4300b5ea..315ad40d90
* src/build: dc0a196b7d..dd05c7feb0
* src/ios: 9c25c1f91f..5de32a3c11
* src/testing: 267efcedf4..6359216acf
* src/third_party: 3dfeb3aae4..4d043504d2
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/b3bee2e7d9..7ad2d7992c
* src/tools: e651cb6595..20caf93c4f
DEPS diff: 5afa522447..4229a4b64d/DEPS

No update to Clang.

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

Change-Id: I81ec08474cf5360e38c6e25745f75c7b01d945e7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125485
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@{#26960}
2019-03-04 22:57:54 +00:00
572c60f44d Injecting Clock into video senders.
Bug: webrtc:10365
Change-Id: I1dc42345a95929970d4f390e04eff56ca0c6d60b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125190
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26959}
2019-03-04 21:55:02 +00:00
8026d60ea9 Injecting Clock in video receive.
Bug: webrtc:10365
Change-Id: Id20fca5b8ad13c133e05efa8972d8f5679507064
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125192
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26958}
2019-03-04 21:53:57 +00:00
ef50b25690 Remove lock in WebRtcVideoEngine
WebRtcVideoEngine is only ever accessed from one thread, so remove
the lock and replace it with ThreadChecker assertions.

Bug: None
Change-Id: I8c34eb6473f0ebaaaafe8a163c3f5d6f19074021
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125240
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Amit Hilbuch <amithi@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26957}
2019-03-04 19:17:24 +00:00
4cde9ad750 Fix some typos found in ivf_file_writer.cc
Bug: None
Change-Id: I4cc486ee93d8c3d6864c556507e31cebd82b21ed
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125462
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26956}
2019-03-04 18:45:52 +00:00
4e5f5eddef Allow Clock injection in Call.
Bug: webrtc:10365
Change-Id: I447df5add93648aebd4cf3e37d13310d990e0ba4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125193
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Ying Wang <yinwa@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26955}
2019-03-04 18:40:12 +00:00
5fe9510efb Move ownership of RTPSenderVideo one more level up, to RtpVideoSender
The idea is to let the RtpRtcp and RTPSender classes be responsible for
media-agnostic RTP transport, and move out the media-specific processing,
such as packetization and media-specific headers.

Bug: webrtc:7135
Change-Id: Ib0ce45bf06713b3eb6c06acd91c5168856874e4e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/123187
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26954}
2019-03-04 16:57:49 +00:00
ac6cf7f089 Roll chromium_revision e65d7afd91..5afa522447 (637200:637301)
Change log: e65d7afd91..5afa522447
Full diff: e65d7afd91..5afa522447

Changed dependencies
* src/base: 93190665e4..ab4300b5ea
* src/build: 9e80056b69..dc0a196b7d
* src/ios: 5802ce84ab..9c25c1f91f
* src/testing: 03e0f50730..267efcedf4
* src/third_party: afbeb0fa3b..3dfeb3aae4
* src/third_party/depot_tools: e9e89e3aa5..8f418985f1
* src/tools: 1e9c883358..e651cb6595
DEPS diff: e65d7afd91..5afa522447/DEPS

No update to Clang.

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

Change-Id: I0a1dba8f98c84368c321299d0aeca5ae395bc02e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125480
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@{#26953}
2019-03-04 16:40:01 +00:00
da6806c204 Injecting Clock into BitrateAllocator.
Bug: webrtc:10365
Change-Id: I9b722f09a25b3ec0f2899f1c83eae5a4648b6965
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125188
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26952}
2019-03-04 16:26:03 +00:00
d0f3d84620 Wire UpdateRect signalling in test frame generators
This is a lightweight signalling, which tells that two
frames are the same if they are the same view of the same frame from the
same file, without comparing actual buffer contents and searching for
changed pixels.

Bug: webrtc:10310
Change-Id: I5c6ae571fdf4cab88466cde88fe7c7a78ae121cc
Reviewed-on: https://webrtc-review.googlesource.com/c/125099
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26951}
2019-03-04 14:42:11 +00:00
acd8ae74ac Reinstate old iceConnectionState "completed" behavior
The old iceConnectionState only becomes completed on the controlling side, and only if we're not configured to continually gather ICE candidates. This change makes the new ICE connection state do the same thing.

Bug: webrtc:10356
Change-Id: I82ca854a638a52674e4ca43364cf454dacb0cf1e
Reviewed-on: https://webrtc-review.googlesource.com/c/124360
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26950}
2019-03-04 13:56:53 +00:00
0a16916ac8 Use JavaAudioDeviceModule as default
Previously, we have created a Legacy ADM when no ADM is supplied.
With this change we will start creating a Java ADM instead.

The end goal is to make injection mandatory, and never creating ADMs.
This is one step on the way, and will allow us to clean up the Legacy
ADM code.

Bug: webrtc:7452
Change-Id: Ib99adc50346fe6b748f9435d2fc6321a50c3ee4e
Reviewed-on: https://webrtc-review.googlesource.com/c/123887
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Paulina Hensman <phensman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26949}
2019-03-04 13:44:33 +00:00
13471a44b6 Switch back to native mutexes on macOS
It seems native mutex performance has improved considerably on Mac
lately, primarily by switching to a different default scheduling
policy. For safety, set this policy explicitly.

The special implementation previously used on Mac is still faster but
suffers a problem when used on realtime audio threads, where they will
not get rescheduled as quickly as when using native mutexes.

Bug: webrtc:10373
Change-Id: Iabf97afc5c2609096331bba0199f433fd26b68b2
Reviewed-on: https://webrtc-review.googlesource.com/c/125186
Commit-Queue: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26948}
2019-03-04 12:42:10 +00:00
b678940d3a Using send time instead of system clock in quality scaler.
Bug: webrtc:10365
Change-Id: Ia0c0df462ecec5bd94c3eda8039831b70d088790
Reviewed-on: https://webrtc-review.googlesource.com/c/125185
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26947}
2019-03-04 12:34:50 +00:00
e64a688167 Replacing Clock in ScreenshareLayers.
there's no easy way to inject the Clock in ScreenshareLayers under
normal use. To allow faking the clock, rtc::TimeMillis is used instead.

Bug: webrtc:10365
Change-Id: I46c7f76514672190a0f0f5816a2c858bc6c76fa4
Reviewed-on: https://webrtc-review.googlesource.com/c/125189
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26946}
2019-03-04 10:49:01 +00:00
c130d42aab Add ability to unwind stack for the current thread
Bug: webrtc:10308
Change-Id: Ia82cb7512524bede8da69bbc747ece6e718733ab
Reviewed-on: https://webrtc-review.googlesource.com/c/124993
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26945}
2019-03-04 10:31:40 +00:00
8b8d01ada3 Add full stack test with weak 3g-like properties
This test is verified to better catch the performance issues that were
fixed in issue 10275.

Bug: webrtc:10275, webrtc:10070
Change-Id: I4654f013b0fa08015af8572269b9df979e5a641f
Reviewed-on: https://webrtc-review.googlesource.com/c/125300
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26944}
2019-03-04 10:28:40 +00:00
727504cf49 Revert "Another mock for GetSctpTransport"
This reverts commit b2c4700d39fbedaff9bdbee934e1f3f8032bb35b.

Reason for revert: Breaks Chrome build

Original change's description:
> Another mock for GetSctpTransport
> 
> Bug: chromium:818643
> Change-Id: I4ae7826efa7afa8e7b2ecd8a5928071a1b913ded
> Reviewed-on: https://webrtc-review.googlesource.com/c/125340
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Commit-Queue: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26941}

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

Change-Id: I98ddc61ca1e76d69b84138419d91ad9e40b04b1d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:818643
Reviewed-on: https://webrtc-review.googlesource.com/c/125380
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26943}
2019-03-04 10:08:31 +00:00
3b548ddb1c Move rtc::NewClosure into own build target as ToQueuedTask
to make it usable without need to depend on rtc_task_queue

Bug: webrtc:10191
Change-Id: I2ae1445cf5d498aa6928d66b6823f2f940987767
Reviewed-on: https://webrtc-review.googlesource.com/c/125084
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26942}
2019-03-04 09:00:38 +00:00
b2c4700d39 Another mock for GetSctpTransport
Bug: chromium:818643
Change-Id: I4ae7826efa7afa8e7b2ecd8a5928071a1b913ded
Reviewed-on: https://webrtc-review.googlesource.com/c/125340
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26941}
2019-03-04 08:27:28 +00:00
87e05b5df5 NetEq fuzzer: lower the maximum fuzzer input size
This avoids timeouts on the server.

Bug: chromium:935089
Change-Id: I8b46664a7cf4d5f14a76b5d034a67453e730eb9e
Reviewed-on: https://webrtc-review.googlesource.com/c/124484
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26940}
2019-03-04 07:54:05 +00:00
7ceef35142 Roll chromium_revision b3ef4b21cb..e65d7afd91 (637096:637200)
Change log: b3ef4b21cb..e65d7afd91
Full diff: b3ef4b21cb..e65d7afd91

Changed dependencies
* src/base: 0bd6565f8b..93190665e4
* src/build: 9ed511087c..9e80056b69
* src/ios: adf08a76a5..5802ce84ab
* src/testing: 7530f07a55..03e0f50730
* src/third_party: c4f499e7e9..afbeb0fa3b
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/ccde41b4c5..b3bee2e7d9
* src/third_party/depot_tools: c903198758..e9e89e3aa5
* src/tools: 43e27e2fed..1e9c883358
DEPS diff: b3ef4b21cb..e65d7afd91/DEPS

No update to Clang.

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

Change-Id: I0d5d1fb65aaefa422c3b349038ef9d205c790835
Reviewed-on: https://webrtc-review.googlesource.com/c/125364
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@{#26939}
2019-03-04 04:28:53 +00:00
4a42742dc6 Make rtc_base/fake_mdns_responder.h self contained.
The header "rtc_base/fake_mdns_responder.h" was not self contained,
and it was relying on order includes to get all the types it needs.

This CL makes it self-contained and removes an unneeded #include.

Bug: None
Change-Id: Ie6c584a169ef884d79e436e51c2e72236b0d4c7a
Reviewed-on: https://webrtc-review.googlesource.com/c/125184
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26938}
2019-03-02 10:18:01 +00:00
1916cbc6c5 Fix -Winconsistent-missing-override in fake_network.h.
This violation survived -Winconsistent-missing-override because gmock
suppresses this diagnostic using "public_configs" [1] and since
"rtc_base/fake_network.h" is only #included in test code, it was not
possible for the compiler to complain about it.

[1] - https://cs.chromium.org/chromium/src/third_party/googletest/BUILD.gn?l=57&rcl=6c7458dd455ec9e301dc7eb4a15953c81cc7eb40

Bug: None
Change-Id: I3c8cf0800cab059009808b24de2fbd27cea3041c
Reviewed-on: https://webrtc-review.googlesource.com/c/125183
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26937}
2019-03-02 09:56:58 +00:00
c9ea5451bf Roll chromium_revision 1951ee5099..b3ef4b21cb (636995:637096)
Change log: 1951ee5099..b3ef4b21cb
Full diff: 1951ee5099..b3ef4b21cb

Changed dependencies
* src/build: a673c9bb79..9ed511087c
* src/ios: 2ceef18ab8..adf08a76a5
* src/testing: 6a5dbfe2df..7530f07a55
* src/third_party: 2ace583ea5..c4f499e7e9
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/021adeeeb4..ccde41b4c5
* src/third_party/depot_tools: a6d41e2396..c903198758
* src/third_party/harfbuzz-ng/src: fe53292310..4f37ab63de
* src/tools: 7228e7d567..43e27e2fed
DEPS diff: 1951ee5099..b3ef4b21cb/DEPS

No update to Clang.

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

Change-Id: Ibb13bcc28d6a93f5d1cc0e895b89993995d930e3
Reviewed-on: https://webrtc-review.googlesource.com/c/125227
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@{#26936}
2019-03-02 06:30:59 +00:00
7e215c65d4 Roll chromium_revision ac8660421f..1951ee5099 (636869:636995)
Change log: ac8660421f..1951ee5099
Full diff: ac8660421f..1951ee5099

Changed dependencies
* src/base: cb9b601b57..0bd6565f8b
* src/build: 25c3bb8278..a673c9bb79
* src/ios: b441b99316..2ceef18ab8
* src/testing: ed6f08df90..6a5dbfe2df
* src/third_party: e882817f4d..2ace583ea5
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/727c16174d..021adeeeb4
* src/third_party/libvpx/source/libvpx: 2d403737b8..503cb8e63a
* src/tools: 0fd1449dc0..7228e7d567
* src/tools/swarming_client: d50a88f507..7a61cf37d6
DEPS diff: ac8660421f..1951ee5099/DEPS

No update to Clang.

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

Change-Id: I9774cefaa1185b8c9da5df57bd9d36944ca7eeb1
Reviewed-on: https://webrtc-review.googlesource.com/c/125220
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@{#26935}
2019-03-01 23:53:48 +00:00
aabd036ecb Simulcast should be disabled if RID header extension is not supported.
Simulcast is disabled if the RIDs are not negotiated.
This change addresses the scenario in which RIDs are negotiated but
support for the RID extension is not negotiated.
In such cases, the RID extension cannot be used, so support for
simulcast should be turned off, as if RIDs were not negotiated.

A similar case can be made for MIDs, however MIDs are not explicitly
specified in simulcast. RIDs are only guaranteed to be  unique within
a media section so it would seem that MIDs should be required.
However, applications supply RID values and can guarantee their
uniqueness, so unlike RIDs, the use of MIDs is not enforced as mandatory.

Bug: webrtc:10075
Change-Id: Ic1b27878ea152eaee43a38bbfda11144307766fe
Reviewed-on: https://webrtc-review.googlesource.com/c/125176
Commit-Queue: Amit Hilbuch <amithi@webrtc.org>
Reviewed-by: Seth Hampson <shampson@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26934}
2019-03-01 22:44:36 +00:00
b1ae10b172 Add x-mt line to the offer.
We already support decoding of the x-mt line. This change adds the
a=x-mt line to the SDP offer. This is not a backward compatible change
for media transport (because of the changes in pre-shared key handling)

1) if media transport is enabled, and SDES is enabled, generate the
media transport offer.
2) if media transport generated the offer, add that offer to the x-mt
line.
3) in order to create media transport, require an x-mt line (backward incompatible).

The way it works is that
1) PeerConnection, on the offerer, asks jsep transport for the
configuration of the media transport.
2) Tentative media transport is created in JsepTransportController when
that happens.
3) SessionDescription will include configuration from this tentative
media transport.
4) When the LocalDescription is set on the offerer, the tentative media
transport is promoted to the real media transport.

Caveats:
- now we really only support MaxBundle. In the previous implementations,
two media transports were briefly created in some tests, and the second
one was destroyed shortly after instantiation.
- we, for now, enforce SDES. In the future, whether SDES is used will be
refactored out of the peer connection.

In the future (on the callee) we should ignore 'is_media_transport' setting. If
Offer contains x-mt, media transport should be used (if the factory is
present). However, we need to decide how to negotiate media transport
for data channels vs data transport for media (x-mt line at this point
doesn't differentiate the two, so we still need to use app setting).

This change also removes the negotation of pre-shared key from the
a=crypto line. Instead, media transport will have its own, 256bit key.
Such key should be transported in the x-mt line. This makes the code
much simpler, and simplifies the dependency / a=crypto lines parsing.

Also, adds a proper test for the connection re-offer (on both sides: callee and caller).
Before, it was possible that media transport could get recreated, based on the offer.
The tests we had didn't test this scenario, and the loopback media factory didn't allow for such test.
This change adds counts to that loopback media factory, and asserts that only 1 media transport is created, even
when there is a re-offer.

Bug: webrtc:9719
Change-Id: Ibd8739af90e914da40ab412454bba8e1529f5a01
Reviewed-on: https://webrtc-review.googlesource.com/c/125040
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26933}
2019-03-01 20:32:16 +00:00
896b47c928 Injecting ProcessThread and TaskQueueFactory in Call.
Bug: webrtc:10365
Change-Id: I7bda014f1075da141fefe9ac26e3fcfd16cf0223
Reviewed-on: https://webrtc-review.googlesource.com/c/125181
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26932}
2019-03-01 20:25:16 +00:00
52426edef1 Modify BufferedFrameDecryptor to perform fine grained key requests.
The current Key Frame request system doesn't take into account failed
decryptions and this can lead to WebRTC spamming new key frame requests when
the issue is actually in the decryptor layer. To prevent this if frame
decryption is required for the PeerConnection key frame requests will not be
sent at 200ms intervals but will wait until the stream is decryptable before
utilizing this logic.

Bug: webrtc:10330
Change-Id: I188a21dfd142dec6175d9def95f39a2bc517017c
Reviewed-on: https://webrtc-review.googlesource.com/c/123414
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26931}
2019-03-01 19:54:16 +00:00
e4bd9a13d8 Style guide fixes for the hkdf class.
Bug: webrtc:9860
Change-Id: I762d175bbf2c240feb476bbf6d91a1a748d9bcbb
Reviewed-on: https://webrtc-review.googlesource.com/c/125125
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26930}
2019-03-01 19:04:48 +00:00
baffae6ec0 Roll chromium_revision 8eb8e09f19..ac8660421f (636762:636869)
Change log: 8eb8e09f19..ac8660421f
Full diff: 8eb8e09f19..ac8660421f

Changed dependencies
* src/base: 0fcf4e9dab..cb9b601b57
* src/build: 69f5e0d064..25c3bb8278
* src/ios: 78f0cfe08e..b441b99316
* src/testing: 2d67a7b4e8..ed6f08df90
* src/third_party: 45bf285c71..e882817f4d
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/fb02ade1a0..727c16174d
* src/tools: 3d76f14e6f..0fd1449dc0
DEPS diff: 8eb8e09f19..ac8660421f/DEPS

No update to Clang.

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

Change-Id: I80b6d240f126e6c472aa16567e47ff807d01cf3a
Reviewed-on: https://webrtc-review.googlesource.com/c/125174
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@{#26929}
2019-03-01 18:36:25 +00:00