148 Commits

Author SHA1 Message Date
Sebastian Jansson
7ccaf8969d Cleanup of network controller handling in Scenario tests.
Removing functionality to choose congestion controller implementation,
using injection instead. Also cleaning up some related functionality
that's no longer needed, such as the injection of event logs into the
factory.

Bug: webrtc:9883
Change-Id: Ia528005625430ae31a15bc88881e2d4ac6ad1d42
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133890
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27768}
2019-04-25 12:40:00 +00:00
Sebastian Jansson
d0aec913d6 Never match a decoded frame with a smaller capture.
Bug: webrtc:10365
Change-Id: I9fa25e15a2495f5d48aa7b415fff9a741d637c71
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133345
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27710}
2019-04-23 12:32:35 +00:00
Sebastian Jansson
2d87a50b46 Only process cross traffic simulation if added.
This avoids extra processing overhead when there's no cross traffic
simulation active.

Bug: webrtc:10365
Change-Id: I8c8ae2fb823a47af2406e62ae350ebb551169646
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133620
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27705}
2019-04-23 10:04:07 +00:00
Sebastian Jansson
f6e6435ab8 Cleanup in NetworkEmulationManager
This prepares for an upcoming CL removing cross traffic processing
when it's not used.

Bug: webrtc:10365
Change-Id: I7f1f3998f7f38c2a627b888c3db6b0c459d8271d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133485
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27682}
2019-04-18 08:25:50 +00:00
Sebastian Jansson
011d3a125e Revert "Cleanup in NetworkEmulationManagerImpl."
This reverts commit aa274d028710cb9d8f1fe3fe5ff68fe7b04e4cf2.

Reason for revert: Depends on reverted CL.

Original change's description:
> Cleanup in NetworkEmulationManagerImpl.
> 
> Bug: webrtc:9883
> Change-Id: I845ecd66ceda9eb8c144e4c10ff374c050413a04
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133344
> Reviewed-by: Artem Titov <titovartem@webrtc.org>
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27664}

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

Change-Id: Ib62f19e382ee0a43f5892fcc694395adb410c36f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9883
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133484
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27673}
2019-04-17 15:57:01 +00:00
Artem Titarenko
b4b53bd8cc Revert "Only process cross traffic simulation if added."
This reverts commit 491d29448e4a0f501f1ea115b218ed5250fbd3dc.

Reason for revert: Breaks internal iOS waterfall

Original change's description:
> Only process cross traffic simulation if added.
> 
> This avoids extra processing overhead when there's no cross traffic
> simulation active. To allow the use of SendTask, GlobalTimeController
> is adjusted so it always overrides yield behavior.
> 
> Also adding sequence checkers to protect against races on
> read access.
> 
> Bug: webrtc:10365
> Change-Id: I55c6ceb22f36ec19a4fca48cff500905192d1a16
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133167
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Artem Titov <titovartem@webrtc.org>
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27658}

TBR=nisse@webrtc.org,srte@webrtc.org,titovartem@webrtc.org

Change-Id: I3b176b0ec202a047c4436e3c2136e8170faea41e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10365
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133482
Reviewed-by: Artem Titarenko <artit@google.com>
Commit-Queue: Artem Titarenko <artit@google.com>
Cr-Commit-Position: refs/heads/master@{#27669}
2019-04-17 15:39:10 +00:00
Sebastian Jansson
aa274d0287 Cleanup in NetworkEmulationManagerImpl.
Bug: webrtc:9883
Change-Id: I845ecd66ceda9eb8c144e4c10ff374c050413a04
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133344
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27664}
2019-04-17 13:18:10 +00:00
Sebastian Jansson
491d29448e Only process cross traffic simulation if added.
This avoids extra processing overhead when there's no cross traffic
simulation active. To allow the use of SendTask, GlobalTimeController
is adjusted so it always overrides yield behavior.

Also adding sequence checkers to protect against races on
read access.

Bug: webrtc:10365
Change-Id: I55c6ceb22f36ec19a4fca48cff500905192d1a16
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133167
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27658}
2019-04-17 10:59:06 +00:00
Sebastian Jansson
eb02a76b36 Allow negative delta in EventRateCounter.
Bug: webrtc:10365
Change-Id: I13192d1e179ef5637210cfea3e67010d00117957
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133025
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27637}
2019-04-16 09:32:42 +00:00
Sebastian Jansson
a4c22b9662 Using NetworkEmulationManager in Scenario tests.
Bug: webrtc:9510
Change-Id: Ib619526269c58f0c46c0c1f01ba6c0efa5f79ba5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132781
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27635}
2019-04-16 06:24:26 +00:00
Sebastian Jansson
5d97f552ba Allow injection of time controller to NetworkEmulationManagerImpl.
Bug: webrtc:10365
Change-Id: I6a0e04459f75e8134787e605057dcb03cae55cd8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132780
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27631}
2019-04-15 18:53:24 +00:00
Sebastian Jansson
72b7524d87 Adds more stats to CallStatsCollector.
Also adding checks to avoid adding empty stats.

Bug: webrtc:10365
Change-Id: I37ab32a3d4271fcad419f17841a8d2e524d73245
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/133020
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27625}
2019-04-15 14:47:56 +00:00
Sebastian Jansson
ef86d1413e Refactor of SimulationNode.
This prepares for using network emulation manager in Scenario tests.

Bug: webrtc:9510
Change-Id: I6ae1b21790d0bcd2b01a3b293231d0859afc1ac8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132719
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27623}
2019-04-15 14:11:00 +00:00
Sebastian Jansson
9a2ca0a9d8 Reland "Adds more performance stats collection to scenario tests."
This is a reland of 63b0b2cf307b47bae3c10b295ece9a5f6d9bd7a4

Original change's description:
> Adds more performance stats collection to scenario tests.
> 
> Bug: webrtc:10365
> Change-Id: I66dce6ff21242c30af674f89fc9fd19172d4a3af
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131948
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27585}

Bug: webrtc:10365
Change-Id: Id7ddb64ac17ecbb4de223dec497bc562040ba7c4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132711
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27618}
2019-04-15 12:13:45 +00:00
Yves Gerey
79e9f4b9c1 Replace test::Statistics by webrtc::RunningStatistics.
The former became redundant and didn't guarantee
numerical stability for variance computation.

Bug: webrtc:10412
Change-Id: Idc291abe9add41bde9e7734f179e5d6c65f2630b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132460
Commit-Queue: Yves Gerey <yvesg@google.com>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27605}
2019-04-13 17:55:27 +00:00
Sebastian Jansson
5a000165d2 Cleanup: Using DCHECK comparison macros for unit types.
This provides nicer error messages.

Bug: webrtc:9883
Change-Id: I7664c12f34bec2ba46a4057b1f45958daf3944b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132707
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27590}
2019-04-12 13:01:03 +00:00
Artem Titov
806299e09b Introduce network emulation layer stats API.
Bug: webrtc:10138
Change-Id: I32133cd14c7a1933dcbeaa37d4c9ce6748274ebe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131383
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27588}
2019-04-12 12:08:06 +00:00
Artem Titov
80bea1eeaa Revert "Adds more performance stats collection to scenario tests."
This reverts commit 63b0b2cf307b47bae3c10b295ece9a5f6d9bd7a4.

Reason for revert: ScenarioAnalyzerTest.* are broken at HEAD.

Original change's description:
> Adds more performance stats collection to scenario tests.
> 
> Bug: webrtc:10365
> Change-Id: I66dce6ff21242c30af674f89fc9fd19172d4a3af
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131948
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#27585}

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

Change-Id: Idb60431dfd859c4328c5c81d0570948463ec3262
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10365
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132709
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27587}
2019-04-12 11:31:07 +00:00
Sebastian Jansson
63b0b2cf30 Adds more performance stats collection to scenario tests.
Bug: webrtc:10365
Change-Id: I66dce6ff21242c30af674f89fc9fd19172d4a3af
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131948
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27585}
2019-04-12 10:14:34 +00:00
Sebastian Jansson
21d42d2710 Reducing flakiness of Scenario real time tests.
Bug: webrtc:9883
Change-Id: Id2ec53d7292f881226c0690c00b143cea107d5b0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132556
Reviewed-by: Artem Titarenko <artit@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27569}
2019-04-11 15:18:58 +00:00
Mirko Bonadei
6a489f22c7 Fully qualify googletest symbols.
Semi-automatically created with:

git grep -l " testing::" | xargs sed -i "s/ testing::/ ::testing::/g"
git grep -l "(testing::" | xargs sed -i "s/(testing::/(::testing::/g"
git cl format

After this, two .cc files failed to compile and I have fixed them
manually.

Bug: webrtc:10523
Change-Id: I4741d3bcedc831b6c5fdc04485678617eb4ce031
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132018
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27526}
2019-04-09 17:18:20 +00:00
Sebastian Jansson
869411805b Disables slow scenario test on IOS ARM64 debug builds.
Bug: webtrc:10515
Change-Id: I742ae67d56080430d1f8756a94c8508ea8fedc35
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132019
Reviewed-by: Artem Titarenko <artit@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27522}
2019-04-09 14:10:10 +00:00
Sebastian Jansson
7150d8c60f Refactoring scenario stats analysis.
This CL just moves code around to prepare for an upcoming
CL where more stats collection is added to scenario tests.

Bug: webrtc:10365
Change-Id: I8a960e44fd11fc36047677c4d8dfc0af96aacb22
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132002
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27519}
2019-04-09 12:47:23 +00:00
Sebastian Jansson
b55015e4e1 Replacing SequencedTaskChecker with SequenceChecker.
Bug: webrtc:9883
Change-Id: I5e3189da2a46e6f4ed1a3c5a5dfd2f7d75a16b5d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130961
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27518}
2019-04-09 12:28:04 +00:00
Christoffer Rodbro
412dc5f27e Clean-up of unused PacingBufferPushback feature.
Bug: webrtc:8171
Change-Id: I2804d6c87fe8b645e6c65784bbc525050c74a375
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131387
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27517}
2019-04-09 12:07:03 +00:00
Sebastian Jansson
f4481c8f73 Adds GetStats to scenario receive streams.
Bug: webrtc:10365
Change-Id: Ia17213701dee7de63018aa935261c17f07a40015
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132005
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27515}
2019-04-09 11:44:20 +00:00
Sebastian Jansson
7237c157ec Fixing failing ScenarioTest for IOS ARM64 Debug builds.
This CL does two things:

* It ensures that video quality analysis is always finished when a
Scenario test is stopped. This ensures consistency between different
task queue implementations.
* It disables one real time test that is too heavy to run on IOS
ARM64 debug builds.

Bug: webrtc:10515
Change-Id: I34b59ecde6f2b68c399734a43ecdbc7223725b17
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131388
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Artem Titarenko <artit@google.com>
Cr-Commit-Position: refs/heads/master@{#27495}
2019-04-08 17:04:57 +00:00
Sebastian Jansson
c01367db40 Deprecating ThreadChecker specific interface.
All changes outside thread_checker.h are by:
s/CalledOnValidThread/IsCurrent/
s/DetachFromThread/Detach/

Bug: webrtc:9883
Change-Id: Idbb1086bff0817db58e770116acf4c9d60fae8b3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131023
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27494}
2019-04-08 16:58:07 +00:00
Artem Titov
0d32a737dc Fix naming in NetworkEmulationManager: endpoint_controller -> endpoint_container
Bug: webrtc:10138
Change-Id: If5d6a9e6b25619278d32477e6c44c8fd5ad0faf2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131331
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27477}
2019-04-08 09:35:39 +00:00
Sebastian Jansson
ebd94f6df1 Using simulated time for GoogCC tests.
Bug: webrtc:10365
Change-Id: I482e544f1585fdb54dc49740ba81870104dd58a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130509
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27468}
2019-04-05 15:58:29 +00:00
Sebastian Jansson
363fb7e050 Running scenario quality unit tests in simulated time.
This is to avoid inconsistent/flaky behavior on mobile bots.

Bug: webrtc:10365
Change-Id: I52ab4f9ef92b10329c1eac502adfcf2886058114
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/131329
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Artem Titarenko <artit@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27465}
2019-04-05 14:35:40 +00:00
Artem Titov
ff39312958 Add ability to have multiple connected remote endpoints
Bug: webrtc:10138
Change-Id: Ic305c2f247588d75b6ced17052ba12d937d1a056
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128864
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27460}
2019-04-05 10:27:14 +00:00
Sebastian Jansson
62bb47f5f8 Splits network node into link and router.
Bug: webrtc:9883
Change-Id: I5ec5265be0940922cff311d385f2bf190f731422
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130496
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27418}
2019-04-02 17:15:46 +00:00
Sebastian Jansson
cf2df2fb97 Bases scenario frame matching on similarity.
Refactoring of quality measurement code, basing frame matching on
frame thumb likeness. This way the code is robust against variations
in timing and frame drops.

Bug: webrtc:9510
Change-Id: Ief7266e01f39ca621a529c0da736e5ed1df8560a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/124401
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27415}
2019-04-02 14:15:49 +00:00
Artem Titov
de83d0c81a Fix params comments in network emulation layer and its usage in scenario framework
Bug: webrtc:10138
Change-Id: I9273410375cf4914abffa69f7443e13d52e77675
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130222
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27397}
2019-04-01 14:51:49 +00:00
Artem Titov
612e179a28 Follow up CL to address clang-tidy suggestions minor issues.
Original CL: https://webrtc-review.googlesource.com/c/src/+/130103

Bug: webrtc:10138
Change-Id: I3bd7459442c36fdb97f581e436a0f365126fb6ea
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130476
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Yves Gerey <yvesg@google.com>
Cr-Commit-Position: refs/heads/master@{#27396}
2019-04-01 14:40:19 +00:00
Artem Titov
bdecb3cdbe Cleanup: rename endpoint_controller_ into endpoint_container_.
Rename endpoint_controller_ into endpoint_container_ in network
emulation layer EmulatedNetworkManager.

Bug: webrtc:10138
Change-Id: If54030f1d2197e2e01b9b9c701e7bbe0dc55b7d1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130465
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27395}
2019-04-01 14:33:49 +00:00
Sebastian Jansson
4124dab7f3 Processing emulated network on task queue.
The has some benefits:
* We no longer need locks to protect the emulated network node state.
* We only process when there are packets in flight.
* It makes Scenario more similar to network emulation manager.

Bug: webrtc:10365
Change-Id: I8bd1ad1edfb54b047e8109dabd9846ae451cef17
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127548
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27393}
2019-04-01 13:52:49 +00:00
Sebastian Jansson
cc5be54c26 Support for injection of FEC controller in Scenario tests.
Also adding sync group for video streams.

Bug: webrtc:10365
Change-Id: I9ef92de756f06bbbcd7b67524bbf51fe1365fa85
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130508
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27390}
2019-04-01 12:30:54 +00:00
Artem Titov
4cd433ed5f Switch routing from dest endpoint id to dest ip in network emulation layer
Bug: webrtc:10138
Change-Id: I8659777820ec7244c1435d71504b0c01fb438192
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130103
Reviewed-by: Yves Gerey <yvesg@google.com>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27386}
2019-04-01 10:04:41 +00:00
Danil Chapovalov
359fe33163 Move TaskQueueFactory from Call::Create parameter to CallConfig
to decouple it from other optional parameters
and with plan to make it mandatory

Bug: webrtc:10284
Change-Id: I71c1d3d9eaf09d00b99b0bc4c811ab173ea5f01f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130473
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27385}
2019-04-01 09:27:44 +00:00
Sebastian Jansson
105a10aef0 Using TimeController for Scenario test framework
As part of this change, a task queue is used to handle packet
processing in real time mode. This requires that we also do
most call and media stream related operation on the same task
queue to satisfy thread checkers.

Bug: webrtc:10365
Change-Id: Icdd9d56e4ca14f2c944dc655c91e29392e3765f7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127544
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27379}
2019-04-01 07:52:35 +00:00
Niels Möller
9d8eaac4ee Delete unneeded direct includes of common_types.h
And delete corresponding dependencies on :webrtc_common. After this
change, common_types.h is included directly only from code in the
following directories:

api/
api/video/
api/video_codecs/
common_video/libyuv/include/
media/base/
modules/remote_bitrate_estimator/
modules/rtp_rtcp/source/
modules/video_coding/codecs/vp9/

There remains plenty of indirect dependencies on the types declared in
common_types.h, but the fewer direct dependencies should make it
easier to find the proper place for each type.

Bug: webrtc:5876
Change-Id: I93e8f214025ecb613c19fdec2015bd3f96c59aae
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/130501
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27376}
2019-04-01 07:18:13 +00:00
Artem Titov
e5cc85b5c5 Introduce dynamic endpoints
Bug: webrtc:10138
Change-Id: I7f6922adb93680cada6bea014539fc3089735834
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128480
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27336}
2019-03-28 12:27:41 +00:00
Niels Möller
0cc2fe5e78 Delete transitional includes from common_types.h
Also drop unneeded dependencies and a #pragma.

Bug: webrtc:5876, webrtc:7660
Change-Id: I3a46eaf60591b00e43c0647a6eb758e5443de466
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128773
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27311}
2019-03-27 13:49:07 +00:00
Artem Titov
94b57c044e Cleanup BUILD.gn files from imports like foo:foo
Repalce all occurrences of foo:foo in deps with just foo in BUILD.gn
files.

Done with Sublime regex replace.
Find: \b([-a-zA-Z0-9_]+):+\1\b
In: *.gn
Replace with: \1

Bug: None
Change-Id: I40aba1b14face687a595b852ffe443cb20197611
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127899
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27225}
2019-03-21 13:05:28 +00:00
Artem Titov
533a9fec55 Clean BUILD.gn files: remove extra :memory
Use //third_party/abseil-cpp/absl/memory instead of
//third_party/abseil-cpp/absl/memory:memory in BUILD.gn files.

Bug: None
Change-Id: I47c915f0847b102b37c5b38009c91b315cd3a1b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128615
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27222}
2019-03-21 12:09:50 +00:00
Danil Chapovalov
982b576bca Avoid using GlobalTaskQueueFactory in NetworkEmulationManager
by using TaskQueueForTest that use Default task queue factory directly

Bug: webrtc:10284
Change-Id: I775911c72851e850a9364714008397cf4d3ab484
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128613
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27217}
2019-03-21 10:13:40 +00:00
Danil Chapovalov
d26a916a80 Avoid using GlobalTaskQueueFactory for TaskQueueForTest
To remove global task factory, rtc::TaskQueue need to loose it's convenient constructor
TaskQueueForTest can be used instead in tests and keep the convenient constructor.

Also cleanup the TaskQueueForTest a bit:
move the class to webrtc namespace
add default constructor
disallow copy using language construct instead of macro
cleanup build dependencies
rename build target (to match move out of the rtc namespace)

Bug: webrtc:10284
Change-Id: I17fddf3f8d4f363df7d495c28a5b0a28abda1ba7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127571
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27193}
2019-03-19 18:11:52 +00:00
Artem Titov
7bf8c7f8cc Add public API for NetworkEmulationManager
Bug: webrtc:10138
Change-Id: Ib5f8e95761813bd117a5e29adbc6822a5c6c73bd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126122
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27146}
2019-03-15 14:50:59 +00:00