Commit graph

1477 commits

Author SHA1 Message Date
Artem Titov
656efbee6f Fix thread usage in PC level tests for getting to the IceConnected state
Bug: webrtc:11743
Change-Id: I18a6318c35b350b3d729bbd5ac1d25f035e6ad9d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178809
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31658}
2020-07-08 08:15:32 +00:00
Markus Handell
a827a30bb7 Revert "Migrate video/ except video/end_to_end_tests and video/adaptation to webrtc::Mutex."
This reverts commit 0eba415fb4.

Reason for revert: previously unknown lock recursion occurring downstream.

Original change's description:
> Migrate video/ except video/end_to_end_tests and video/adaptation to webrtc::Mutex.
> 
> Also migrates test/ partly.
> 
> Bug: webrtc:11567
> Change-Id: I4203919615c087e5faca3b2fa1d54cba9f171e07
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178813
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Markus Handell <handellm@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31653}

TBR=sprang@webrtc.org,handellm@webrtc.org

Change-Id: I13f337e0de5b8f0eb19deb57cb5623444460ec4d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11567
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178842
Reviewed-by: Markus Handell <handellm@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31656}
2020-07-07 20:46:48 +00:00
Markus Handell
0eba415fb4 Migrate video/ except video/end_to_end_tests and video/adaptation to webrtc::Mutex.
Also migrates test/ partly.

Bug: webrtc:11567
Change-Id: I4203919615c087e5faca3b2fa1d54cba9f171e07
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178813
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31653}
2020-07-07 18:01:44 +00:00
Artem Titov
0ef4a2488a Add simulated time support for PC level test.
Bug: webrtc:11743
Change-Id: If69ab07618a30ec1a66dd5f36b3198486bee55fa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178608
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31639}
2020-07-06 21:18:00 +00:00
Sylvain Defresne
c7f0dff191 Convert GN libs lists to frameworks
GN recently added support for Apple frameworks to link, rather than
overloading the libs lists. This pulls .frameworks out of the libs
lists, so that GN can stop supporting .frameworks in libs in the
future.

Bug: chromium:1052560
Change-Id: I263230ddd3c468061584423bba9e1f887503bcaa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178601
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Sylvain Defresne <sdefresne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#31632}
2020-07-06 10:08:09 +00:00
Artem Titov
db1c81d45b Prepare for migration of TestPeer and TestPeerFactory on TimeController
Bug: webrtc:11743
Change-Id: I99a9746830a1c6abae753d33cf61890f7a372608
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178605
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31622}
2020-07-03 12:08:07 +00:00
Erik Språng
1d50cb61d8 Reland "Reland "Allows FEC generation after pacer step.""
This is a reland of 19df870d92
Patchset 1 is the original.
Subsequent patchset changes threadchecker that crashed with downstream
code.

Original change's description:
> Reland "Allows FEC generation after pacer step."
>
> This is a reland of 75fd127640
>
> Patchset 2 contains a fix. Old code can in factor call
> RtpRtcpImpl::FetchFec(). It should only be a noop since deferred fec
> is not supported there - we shouldn't crash.
>
> Original change's description:
> > Allows FEC generation after pacer step.
> >
> > Split out from https://webrtc-review.googlesource.com/c/src/+/173708
> > This CL enables FEC packets to be generated as media packets are sent,
> > rather than generated, i.e. media packets are inserted into the fec
> > generator after the pacing stage rather than at packetization time.
> >
> > This may have some small impact of performance. FEC packets are
> > typically only generated when a new packet with a marker bit is added,
> > which means FEC packets protecting a frame will now be sent after all
> > of the media packets, rather than (potentially) interleaved with them.
> > Therefore this feature is currently behind a flag so we can examine the
> > impact. Once we are comfortable with the behavior we'll make it default
> > and remove the old code.
> >
> > Note that this change does not include the "protect all header
> > extensions" part of the original CL - that will be a follow-up.
> >
> > Bug: webrtc:11340
> > Change-Id: I3fe139c5d53968579b75b91e2612075451ff0f5d
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177760
> > Commit-Queue: Erik Språng <sprang@webrtc.org>
> > Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#31558}
>
> Bug: webrtc:11340
> Change-Id: I2ea49ee87ee9ff409044e34a777a7dd0ae0a077f
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177984
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31613}

Bug: webrtc:11340
Change-Id: Ib741c8c284f523c959f8aca454088d9eee7b17f8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178600
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31619}
2020-07-03 07:20:06 +00:00
Erik Språng
a1888ae791 Revert "Reland "Allows FEC generation after pacer step.""
This reverts commit 19df870d92.

Reason for revert: Downstream project failure

Original change's description:
> Reland "Allows FEC generation after pacer step."
> 
> This is a reland of 75fd127640
> 
> Patchset 2 contains a fix. Old code can in factor call
> RtpRtcpImpl::FetchFec(). It should only be a noop since deferred fec
> is not supported there - we shouldn't crash.
> 
> Original change's description:
> > Allows FEC generation after pacer step.
> >
> > Split out from https://webrtc-review.googlesource.com/c/src/+/173708
> > This CL enables FEC packets to be generated as media packets are sent,
> > rather than generated, i.e. media packets are inserted into the fec
> > generator after the pacing stage rather than at packetization time.
> >
> > This may have some small impact of performance. FEC packets are
> > typically only generated when a new packet with a marker bit is added,
> > which means FEC packets protecting a frame will now be sent after all
> > of the media packets, rather than (potentially) interleaved with them.
> > Therefore this feature is currently behind a flag so we can examine the
> > impact. Once we are comfortable with the behavior we'll make it default
> > and remove the old code.
> >
> > Note that this change does not include the "protect all header
> > extensions" part of the original CL - that will be a follow-up.
> >
> > Bug: webrtc:11340
> > Change-Id: I3fe139c5d53968579b75b91e2612075451ff0f5d
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177760
> > Commit-Queue: Erik Språng <sprang@webrtc.org>
> > Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#31558}
> 
> Bug: webrtc:11340
> Change-Id: I2ea49ee87ee9ff409044e34a777a7dd0ae0a077f
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177984
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31613}

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

Change-Id: I3b2b25898ce88b64c2322f68ef83f9f86ac2edb0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11340
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178563
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31614}
2020-07-02 12:03:07 +00:00
Erik Språng
19df870d92 Reland "Allows FEC generation after pacer step."
This is a reland of 75fd127640

Patchset 2 contains a fix. Old code can in factor call
RtpRtcpImpl::FetchFec(). It should only be a noop since deferred fec
is not supported there - we shouldn't crash.

Original change's description:
> Allows FEC generation after pacer step.
>
> Split out from https://webrtc-review.googlesource.com/c/src/+/173708
> This CL enables FEC packets to be generated as media packets are sent,
> rather than generated, i.e. media packets are inserted into the fec
> generator after the pacing stage rather than at packetization time.
>
> This may have some small impact of performance. FEC packets are
> typically only generated when a new packet with a marker bit is added,
> which means FEC packets protecting a frame will now be sent after all
> of the media packets, rather than (potentially) interleaved with them.
> Therefore this feature is currently behind a flag so we can examine the
> impact. Once we are comfortable with the behavior we'll make it default
> and remove the old code.
>
> Note that this change does not include the "protect all header
> extensions" part of the original CL - that will be a follow-up.
>
> Bug: webrtc:11340
> Change-Id: I3fe139c5d53968579b75b91e2612075451ff0f5d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177760
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31558}

Bug: webrtc:11340
Change-Id: I2ea49ee87ee9ff409044e34a777a7dd0ae0a077f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177984
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31613}
2020-07-02 11:40:55 +00:00
Artem Titov
1ff3c584cd Add TimeController to the CreatePeerConnectionE2EQualityTestFixture API
Add TimeController to the CreatePeerConnectionE2EQualityTestFixture
method as a first step to make PC level framework compatible with
TimeController abstraction.

Bug: webrtc:11743
Change-Id: I69305abc880059bf9fe1d4f2e3b7c10cf35417db
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178485
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31607}
2020-07-01 15:18:34 +00:00
Andrey Logvin
afeb07030e Add av sync metrics to pc level tests
Bug: webrtc:11381
Change-Id: I0a44583114401f09425d49dbb36957160b3f149f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178201
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31603}
2020-07-01 11:58:42 +00:00
Andrey Logvin
20f45823e3 Add sync group mapping to TrackIdStreamLabelMap
Bug: webrtc:11381
Change-Id: I0f4c590d5474d1aa84c8a6e7a8b3fab252b0b3fc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178362
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31601}
2020-07-01 11:17:21 +00:00
Andrey Logvin
9d841fb1f5 Add Start method with TrackIdStreamLabelMap to PeerConnectionE2EQualityTestFixture::QualityMetricsReporter
Bug: webrtc:11381
Change-Id: I55b671e9a2928da3d204030654d4eee2a5893448
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178360
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31598}
2020-07-01 07:43:12 +00:00
Erik Språng
4b5792cc4a Reland "Reland "Removes lock release in PacedSender callback.""
This is a reland of b46df3da44

Test case for issue that caused revert added:
https://webrtc-review.googlesource.com/c/src/+/178203

Fix for issue that caused revert:
https://webrtc-review.googlesource.com/c/src/+/178207


Original change's description:
> Reland "Removes lock release in PacedSender callback."
>
> This is a reland of 6b9c60b06d
>
> Original change's description:
> > Removes lock release in PacedSender callback.
> >
> > The PacedSender currently has logic to temporarily release its internal
> > lock while sending or asking for padding.
> > This creates some tricky situations in the pacing controller where we
> > need to consider if some thread can enter while we the process thread is
> > actually processing, just temporarily busy sending.
> >
> > Since the pacing call stack is no longer cyclic, we can actually remove
> > this lock-release now.
> >
> > Bug: webrtc:10809
> > Change-Id: Ic59c605252bed1f96a03406c908a30cd1012f995
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173592
> > Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> > Commit-Queue: Erik Språng <sprang@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#31206}
>
> Bug: webrtc:10809
> Change-Id: Id39fc49b0a038e7ae3a0d9818fb0806c33ae0ae0
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175656
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31332}

Bug: webrtc:10809
Change-Id: I1dba507220316008c0f3b278df4b732011f257eb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178384
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31588}
2020-06-30 09:55:00 +00:00
Andrey Logvin
739cfb2f58 Add sync group validation in pc level test framework
Bug: webrtc:11381
Change-Id: I4ef62675c0cb688abccc130fb91a69c3c78bf837
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178383
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31587}
2020-06-30 09:53:19 +00:00
Erik Språng
000953c8d1 Adds test case that would have found potential dead-lock in pacer.
https://webrtc-review.googlesource.com/c/src/+/178100 reverted a change
that could result in a deadlock if WebRTC-Audio-SendSideBwe was enabled
and WebRTC-Audio-ABWENoTWCC was not while using send-side BWE in a
mixed audio/video setting.

This CL adds an integration test that fails on tsan if above commit is
cherry-picked.

Bug: webrtc:10809
Change-Id: I5028d5794e5c9e970ccd9b7eb25d5b76a7fa4e58
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178203
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31574}
2020-06-26 15:40:20 +00:00
Jeremy Leconte
b19cfeeb5c Roll chromium_revision 4d95e6c77b..71a0e1904e (776481:782339)
Change log: 4d95e6c77b..71a0e1904e
Full diff: 4d95e6c77b..71a0e1904e

Changed dependencies
* src/base: 2df7267880..736d9fb42c
* src/build: a03951acb9..876a780600
* src/buildtools: 1b066f0216..1ed99573d5
* src/buildtools/linux64: git_revision:d0a6f072070988e7b038496c4e7d6c562b649732..git_revision:7d7e8deea36d126397bda2cf924682504271f0e1
* src/buildtools/mac: git_revision:d0a6f072070988e7b038496c4e7d6c562b649732..git_revision:7d7e8deea36d126397bda2cf924682504271f0e1
* src/buildtools/win: git_revision:d0a6f072070988e7b038496c4e7d6c562b649732..git_revision:7d7e8deea36d126397bda2cf924682504271f0e1
* src/ios: 9200aad36b..73c8bcb1b1
* src/testing: 502600d41a..77ba7104d5
* src/third_party: e0df6e10ad..1908162da7
* src/third_party/android_deps/libs/androidx_activity_activity: version:1.0.0-cr0..version:1.1.0-cr0
* src/third_party/android_deps/libs/androidx_arch_core_core_runtime: version:2.0.0-cr0..version:2.1.0-cr0
* src/third_party/android_deps/libs/androidx_fragment_fragment: version:1.1.0-cr0..version:1.2.5-cr0
* src/third_party/android_deps/libs/androidx_lifecycle_lifecycle_common: version:2.1.0-cr0..version:2.2.0-cr0
* src/third_party/android_deps/libs/androidx_lifecycle_lifecycle_livedata_core: version:2.0.0-cr0..version:2.2.0-cr0
* src/third_party/android_deps/libs/androidx_lifecycle_lifecycle_runtime: version:2.1.0-cr0..version:2.2.0-cr0
* src/third_party/android_deps/libs/androidx_lifecycle_lifecycle_viewmodel: version:2.1.0-cr0..version:2.2.0-cr0
* src/third_party/android_deps/libs/androidx_preference_preference: version:1.0.0-cr0..version:1.1.1-cr0
* src/third_party/android_deps/libs/org_robolectric_shadows_multidex: version:4.3.1-cr0..version:4.3.1-cr1
* src/third_party/android_sdk/public: CR25ixsRhwuRnhdgDpGFyl9S0C_0HO9SUgFrwX46zq8C..uM0XtAW9BHh8phcbhBDA9GfzP3bku2SP7AiMahhimnoC
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/88024df121..430a742303
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/2ad47493f8..e0658a4adf
* src/third_party/depot_tools: 37e562110f..87c8b91639
* src/third_party/espresso: c92dcfc4e894555a0b3c309f2b7939640eb1fee4..y8fIfH8Leo2cPm7iGCYnBxZpwOlgLv8rm2mlcmJlvGsC
* src/third_party/ffmpeg: be66dc5fd0..23b2a15c25
* src/third_party/freetype/src: 62fea391fa..a443474755
* src/third_party/icu: 630b884f84..79326efe26
* src/third_party/libaom/source/libaom: https://aomedia.googlesource.com/aom.git/+log/2aa13c436e..e1ebb418eb
* src/third_party/libunwindstack: 046920fc49..11659d420a
* src/third_party/libvpx/source/libvpx: c176557314..769129fb29
* src/third_party/perfetto: 60cf022c02..44e38c4643
* src/third_party/r8: gobCh01BNwJNyLHHNFUmLWSMaAbe4x3izuzBFzxQpDoC..B467c9t23JiW_6XGqhvHvtEKWSkrPS2xG_gho_gbAI4C
* src/third_party/turbine: 3UJ600difG3ThRhtYrN9AfZ5kh8wCYtBiii1-NMlCrMC..mr9FyghUYWLYv4L5Nr3C_oceLfmmybnFgAi366GjQoYC
* src/third_party/turbine/src: 95f6fb6f1e..1c98ea6854
* src/tools: 050a4a5e26..d6998993f9
Added dependency
* src/third_party/android_deps/libs/androidx_lifecycle_lifecycle_viewmodel_savedstate
DEPS diff: 4d95e6c77b..71a0e1904e/DEPS

Clang version changed f7f1abdb8893af4a606ca1a8f5347a426e9c7f9e:4e813bbdf
Details: 4d95e6c77b..71a0e1904e/tools/clang/scripts/update.py

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

Change-Id: Idb4a2ccc6eab502ecf78b34247a479ff5726b50a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178084
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#31569}
2020-06-26 05:33:14 +00:00
Erik Språng
118d01ac35 Revert "Reland "Removes lock release in PacedSender callback.""
This reverts commit b46df3da44.

Reason for revert: May cause deadlock.

Original change's description:
> Reland "Removes lock release in PacedSender callback."
> 
> This is a reland of 6b9c60b06d
> 
> Original change's description:
> > Removes lock release in PacedSender callback.
> > 
> > The PacedSender currently has logic to temporarily release its internal
> > lock while sending or asking for padding.
> > This creates some tricky situations in the pacing controller where we
> > need to consider if some thread can enter while we the process thread is
> > actually processing, just temporarily busy sending.
> > 
> > Since the pacing call stack is no longer cyclic, we can actually remove
> > this lock-release now.
> > 
> > Bug: webrtc:10809
> > Change-Id: Ic59c605252bed1f96a03406c908a30cd1012f995
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173592
> > Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> > Commit-Queue: Erik Språng <sprang@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#31206}
> 
> Bug: webrtc:10809
> Change-Id: Id39fc49b0a038e7ae3a0d9818fb0806c33ae0ae0
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175656
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31332}

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

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

Bug: webrtc:10809
Change-Id: I6b06bafad8cd9eeb22107d04b953fd14b8131afa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/178100
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31564}
2020-06-25 12:41:48 +00:00
Erik Språng
1b48532208 Revert "Allows FEC generation after pacer step."
This reverts commit 75fd127640.

Reason for revert: Breaks downstream test

Original change's description:
> Allows FEC generation after pacer step.
> 
> Split out from https://webrtc-review.googlesource.com/c/src/+/173708
> This CL enables FEC packets to be generated as media packets are sent,
> rather than generated, i.e. media packets are inserted into the fec
> generator after the pacing stage rather than at packetization time.
> 
> This may have some small impact of performance. FEC packets are
> typically only generated when a new packet with a marker bit is added,
> which means FEC packets protecting a frame will now be sent after all
> of the media packets, rather than (potentially) interleaved with them.
> Therefore this feature is currently behind a flag so we can examine the
> impact. Once we are comfortable with the behavior we'll make it default
> and remove the old code.
> 
> Note that this change does not include the "protect all header
> extensions" part of the original CL - that will be a follow-up.
> 
> Bug: webrtc:11340
> Change-Id: I3fe139c5d53968579b75b91e2612075451ff0f5d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177760
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31558}

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

Change-Id: Ie714e5f68580cbd57560e086c9dc7292a052de5f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11340
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177983
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31559}
2020-06-24 18:41:10 +00:00
Erik Språng
75fd127640 Allows FEC generation after pacer step.
Split out from https://webrtc-review.googlesource.com/c/src/+/173708
This CL enables FEC packets to be generated as media packets are sent,
rather than generated, i.e. media packets are inserted into the fec
generator after the pacing stage rather than at packetization time.

This may have some small impact of performance. FEC packets are
typically only generated when a new packet with a marker bit is added,
which means FEC packets protecting a frame will now be sent after all
of the media packets, rather than (potentially) interleaved with them.
Therefore this feature is currently behind a flag so we can examine the
impact. Once we are comfortable with the behavior we'll make it default
and remove the old code.

Note that this change does not include the "protect all header
extensions" part of the original CL - that will be a follow-up.

Bug: webrtc:11340
Change-Id: I3fe139c5d53968579b75b91e2612075451ff0f5d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177760
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31558}
2020-06-24 16:59:50 +00:00
Niels Möller
29d59a1402 Add method PeerConfigurer::SetBitrateSettings
It replaces the method SetBitrateParameters, which uses the
deprecated type PeerConnectionInterface::BitrateParameters.

Bug: None
No-try: True
Change-Id: I3690d391d679c3ff5b79e088f6c7f79bc3571064
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177667
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31557}
2020-06-24 12:07:06 +00:00
Mirko Bonadei
96115cfcdd Add absl_deps to webrtc_fuzzer_test.
Bug: chromium:1046390
Change-Id: I531511dce156a10174c9ed80ccb2d5cd75ec33b0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177900
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31553}
2020-06-24 08:22:30 +00:00
Björn Terelius
ae1892d4e4 Add simulation of robust throughput estimator to the event log analyzer
Bug: webrtc:11566
Change-Id: I873d1c1bd6682a973b3a130289390e09ef47cc37
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177017
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31538}
2020-06-17 10:33:02 +00:00
Niels Möller
2a70703eb8 Delete MediaTransportInterface and DatagramTransportInterface
Bug: webrtc:9719
Change-Id: Ic9936a78ab42f4a9bb4cc3265f0a2cf36946558f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176500
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Taylor <deadbeef@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31536}
2020-06-17 08:41:14 +00:00
Andrey Logvin
2b7bbd9c5b Delete obsolete constructor from VideoQualityMetricsReporter
Bug: webrtc:10430
Change-Id: I7deb6c2200544d2cc48ab607a3b67198afe374ef
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177250
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31529}
2020-06-16 08:34:59 +00:00
Andrey Logvin
9b526180c9 Migrate pc level test metrics to new getStart API
Bug: webrtc:10430
Change-Id: I7555cb967f2e341da43338cb0f8652490992bd31
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176857
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31526}
2020-06-15 18:28:52 +00:00
philipel
9465978a3b Remove framemarking RTP extension.
BUG=webrtc:11637

Change-Id: I47f8e22473429c9762956444e27cfbafb201b208
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176442
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31522}
2020-06-15 11:18:00 +00:00
Artem Titov
7a2f0fa99f Add support of multiple peers into DefaultVideoQualityAnalyzer
Bug: webrtc:11631
Change-Id: I8c43efcfdccc441c85e199984ae1ce565c1d12fe
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176411
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31519}
2020-06-15 09:26:54 +00:00
Magnus Flodman
55afe3885b Search and replace gendered terms according to style guide:
https://chromium.googlesource.com/chromium/src/+/master/styleguide/inclusive_code.md#tools

Not changin the transcipt in
resources/audio_processing/conversational_speech/README.md

BUG=webrtc:11680

Change-Id: I36af34e4a4e0ec6161093c0045b7bbe1dbe4eb45
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177016
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31514}
2020-06-12 14:12:54 +00:00
Artem Titov
ce73ec4a9a Revert "Generalize NetworkQualityMetricsReporter to support multiple peers in test"
This reverts commit 33c0c342f6.

Reason for revert: Break packet loss metric

Original change's description:
> Generalize NetworkQualityMetricsReporter to support multiple peers in test
> 
> Bug: webrtc:11479
> Change-Id: I80a6633b0edbb02274aff1f3a596908ee6a7497e
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177008
> Reviewed-by: Andrey Logvin <landrey@webrtc.org>
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31506}

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

Change-Id: Ic428e8a7e016bcbfd35f8fca8468ed26f58e5800
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11479
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177010
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31511}
2020-06-12 08:43:00 +00:00
Artem Titov
33c0c342f6 Generalize NetworkQualityMetricsReporter to support multiple peers in test
Bug: webrtc:11479
Change-Id: I80a6633b0edbb02274aff1f3a596908ee6a7497e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177008
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31506}
2020-06-11 15:36:52 +00:00
Sebastian Jansson
ac937d03b0 Fix for potential infinite loop in TCP traffic simulator.
For stream sizes that were not multiple of 4, we could end up causing
a size_t wraparound which resulted in an infinite loop.

Bug: webrtc:9510
Change-Id: Ie3fe5345e1477efa6a4ec338bd9f9b00225e688e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177005
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31503}
2020-06-11 13:56:11 +00:00
Sebastian Jansson
f72de7bb61 Fix for flakiness in real time scenario test
Bug: webrtc:9510
Change-Id: I933ebf70674451ac37be4cc2cc2a1e2452d90588
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/177006
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31501}
2020-06-11 13:49:11 +00:00
Mirko Bonadei
08ce986fda Switch to absl single target when building with Chromium.
The //third_party/abseil-cpp:absl target is currently a group that
depends on all the targets needed by WebRTC in Chromium.

It will be switched to a component starting from
https://chromium-review.googlesource.com/c/chromium/src/+/2174434.

Bug: chromium:1046390
Change-Id: I70d450fdbfa895084b481c9884b6361d2fb9580d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176901
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31498}
2020-06-11 11:53:48 +00:00
Artem Titov
5f7bfbe6c6 Skip frame with unknown frame id in receiver part of DefaultVideoQualityAnalyzer
It may happen that if we have simulcast track with, let's say, 2 streams
A and B, we can receive frame X on A and then receive it again on B
when there is a switch from A to B. TO correctly handle it we need to
skip second receive of X. Later we need to add metric which will show
how many frames were in between when X was received twice.

Bug: webrtc:11557
Change-Id: I8c52a78674b62387f520a587f51e209ed7c0b0bc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176853
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31488}
2020-06-10 13:31:05 +00:00
Mirko Bonadei
2dcf348011 Use absl_deps in order to preapre to the Abseil component build release.
Bug: webrtc:1046390
Change-Id: Ia35545599de23b1a2c2d8be2d53469af7ac16f1d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176502
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31463}
2020-06-08 12:59:40 +00:00
Erik Språng
576db1bf60 Fixes incorrect padding setting for VP9 SVC.
Unit test added to verify root cause is fixed.
Scenario test added to verify high-level behavior.

Bug: webrtc:11654
Change-Id: I1ad6e2750f5272e86b4198749edbbf5dfd8315c4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176564
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31462}
2020-06-08 12:56:10 +00:00
Artem Titov
506d4eb7e4 Add missing headers to fix chromium roll
Bug: None
Change-Id: If28819bbeebe739f07fcd8d6ea8ab841efc20f75
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176562
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31453}
2020-06-05 17:49:04 +00:00
Artem Titov
3685605b52 Remove old Start method from VideoQualityAnalyzerInjectionHelper
Bug: webrtc:11631
Change-Id: I029e83fe6f50bb4f5ab0a56c9089271702f3cf34
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176561
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31452}
2020-06-05 15:56:33 +00:00
Artem Titov
10594c3c46 Add multi head queue implementation.
Queue with multiple heads is planned to be used in
DefaultVideoQualityAnalyzer to store stream state. Stream state contains
ordered sequence of frame ids that were send for this video stream.
When frame is received by one receiver it should be removed from state
for that receiver and kept for others.

How it is used can be found in this CL:
https://webrtc-review.googlesource.com/c/src/+/176411

Bug: webrtc:11631
Change-Id: Ic7fabf4d77131805a91f08a2ccfffc73c08d3e2d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176402
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31444}
2020-06-04 10:37:05 +00:00
Markus Handell
f70fbc8411 Introduces rtc_base/synchronization/mutex.h.
This change introduces a new non-reentrant mutex to WebRTC. It
enables eventual migration to Abseil's mutex.

The mutex types supportable by webrtc::Mutex are

- absl::Mutex
- CriticalSection (Windows only)
- pthread_mutex (POSIX only)

In addition to introducing the mutexes, the CL also changes
PacketBuffer to use the new mutex instead of rtc::CriticalSection.

The method of yielding from critical_section.cc was given a
mini-cleanup and YieldCurrentThread() was added to
rtc_base/synchronization/yield.h/cc.

Additionally, google_benchmark benchmarks for the mutexes were added
(test courtesy of danilchap@), and some results from a pthread/Abseil
shootout were added showing Abseil has the advantage in higher
contention.

Bug: webrtc:11567, webrtc:11634
Change-Id: Iaec324ccb32ec3851bf6db3fd290f5ea5dee4c81
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176230
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31443}
2020-06-04 09:55:12 +00:00
Tomas Gunnarsson
f25761d798 Remove dependency from RtpRtcp on the Module interface.
The 'Module' part of the implementation must not be
called via the RtpRtcp interface, but is rather a part of
the contract with ProcessThread. That in turn is an
implementation detail for how timers are currently implemented
in the default implementation.

Along the way I'm deprecating away the factory function which
was inside the interface and tied it to one specific implementation.
Instead, I'm moving that to the implementation itself and down the
line, we don't have to go through it if we just want to create an
instance of the class.

The key change is in rtp_rtcp.h and the new rtp_rtcp_interface.h
header file (things moved from rtp_rtcp.h), the rest falls from that.

Change-Id: I294f13e947b9e3e4e649400ee94a11a81e8071ce
Bug: webrtc:11581
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176419
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31440}
2020-06-04 08:11:21 +00:00
Mirko Bonadei
5d511a5c0b Include correct ABSL_DECLARE_FLAG header.
The absl/flags/flag.h header is not #including absl/flags/declare.h
starting from [1] so this transitive #include needs to be removed.

[1] - https://chromium-review.googlesource.com/c/chromium/src/+/2228841

Bug: None
Change-Id: I06e78ed05e0fb570a9ecc8621ec3ae5298fffd1a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176444
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31433}
2020-06-03 22:08:46 +00:00
Artem Titov
3b641675de Add list of participants to the start method of video analyzer.
To support multiple participants video quality analyzer may need to know
peer names in advance to simplify internal structures and metrics
reporting.

Bug: webrtc:11631
Change-Id: I4ffb1554ab7f0e015b8e937b7ffddd55aba9826f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176364
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31415}
2020-06-03 08:08:47 +00:00
Markus Handell
16038abb90 FrameForwarder: remove lock recursions.
This change removes lock recursions and adds thread annotations.

Bug: webrtc:11567
Change-Id: I5416cfc8e482bd966eec87c3790abbebc37a84d8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176224
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31403}
2020-06-02 09:41:54 +00:00
Andrey Logvin
a0f5e475c5 Move kUsedBufferSize to header
Bug: webrtc:11633
Change-Id: I14e5bf8b48dc0d0f6faef68458b06cf760f33904
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176365
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31400}
2020-06-01 21:16:42 +00:00
Andrey Logvin
fce28fa091 Remove length from SingleProcessEncodedImageDataInjector::ExtractionInfo, use SpatialLayerFrameSize instead
Bug: webrtc:11632
Change-Id: I8fea71e130df9894f26287ce94cd8bb05da3a69a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176331
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31398}
2020-06-01 16:29:48 +00:00
Artem Titov
8a0284e2a8 Add peer name to video quality analyzer interface.
Add peer name to video quality analyzer interface to make it possible to
add multipeer support.

Change-Id: I2570cd4481503c8634bdd91208b3dd2fa1d62029
Bug: webrtc:11631
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176329
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31395}
2020-06-01 11:48:50 +00:00
Artem Titov
b81e6678a9 Further simplify PC Smoke test to fix flakes on slow devices
Bug: None
Change-Id: I98addb1e8133e9239bb9c60f062b2c24efb57e1f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176302
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31379}
2020-05-28 17:34:27 +00:00
Artem Titov
e5f2d58147 Reduce PC level Smoke test flakiness
Increase test duration to make at least one frame to come through on slow
test bots and remove check in echo emulation for same purposes. Logging
for echo queue should be enough.

Bug: None
Change-Id: I0d2d1c2a87e1a2b4cd035828443f428b0983edad
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176300
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31377}
2020-05-28 14:29:56 +00:00
Philipp Hancke
fe6a353ce4 fuzzers: fix isax typo
TBR=saza@webrtc.org
BUG=none

Change-Id: If565fbcca92f162b9483eb6abeaf3c374998c2df
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/176123
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31355}
2020-05-26 12:51:28 +00:00
Tommi
25c77c1aea Add SharedModuleThread class to share a module thread across Call instances.
This reduces the number of threads allocated per PeerConnection when
more than one PC is needed.

Bug: webrtc:11598
Change-Id: I3c1fd71705f90c4b4bbb1bc3f0f659c94016e69a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175904
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31347}
2020-05-25 17:21:56 +00:00
Erik Språng
b46df3da44 Reland "Removes lock release in PacedSender callback."
This is a reland of 6b9c60b06d

Original change's description:
> Removes lock release in PacedSender callback.
> 
> The PacedSender currently has logic to temporarily release its internal
> lock while sending or asking for padding.
> This creates some tricky situations in the pacing controller where we
> need to consider if some thread can enter while we the process thread is
> actually processing, just temporarily busy sending.
> 
> Since the pacing call stack is no longer cyclic, we can actually remove
> this lock-release now.
> 
> Bug: webrtc:10809
> Change-Id: Ic59c605252bed1f96a03406c908a30cd1012f995
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173592
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31206}

Bug: webrtc:10809
Change-Id: Id39fc49b0a038e7ae3a0d9818fb0806c33ae0ae0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175656
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31332}
2020-05-20 11:49:21 +00:00
Markus Handell
409784d0c4 FakeEncoder: remove lock recursions.
This change removes lock recursions and adds thread annotations.

Bug: webrtc:11567
Change-Id: I88561102c31156718fbb175a9a38f2cc89c6d9dc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175642
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31316}
2020-05-19 08:57:15 +00:00
Markus Handell
222598d1bf SimulatedTimeController: remove lock recursions.
This change removes lock recursions and adds thread annotations.

Bug: webrtc:11567
Change-Id: If6c86adddf006367eefedf10cce819e776e6afc2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175111
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31294}
2020-05-18 07:42:46 +00:00
Tommi
ec3ba734e9 Don't wrap the main thread when running death tests.
Also re-enable the TestAnnotationsOnWrongQueueDebug test and rename
the test suite to SequenceCheckerDeathTest so that it gets executed
before other tests.

Bug: webrtc:11577
Change-Id: I3b8037644e4b9139755ccecb17e42b09327e4996
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175346
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31290}
2020-05-17 17:15:10 +00:00
Mirko Bonadei
e6e7f6a473 Reland "Re-enable absl FailureSignalHandler in tests."
This is a reland of 46e9629dda.

Relanding this one since it looks unrelated from the death tests
failure, see https://bugs.chromium.org/p/webrtc/issues/detail?id=11577.

Original change's description:
> Re-enable absl FailureSignalHandler in tests.
>
> It was not the cause of the SIGSEGV on iossim, so it is fine to
> re-enable it.
>
> TBR: titovartem@webrtc.org
> Bug: None
> Change-Id: I593a010f83f1a0df6b3419dd4f925380210844c9
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175105
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Artem Titov <titovartem@webrtc.org>
> Reviewed-by: Markus Handell <handellm@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31277}

TBR: titovartem@webrtc.org
Bug: None
Change-Id: I8d57c102e175bf66819f58057dd961830c2ab094
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175345
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31288}
2020-05-17 12:05:17 +00:00
Mirko Bonadei
4515a55eed Revert "Re-enable absl FailureSignalHandler in tests."
This reverts commit 46e9629dda.

Reason for revert: Speculative revert.

Original change's description:
> Re-enable absl FailureSignalHandler in tests.
> 
> It was not the cause of the SIGSEGV on iossim, so it is fine to
> re-enable it.
> 
> TBR: titovartem@webrtc.org
> Bug: None
> Change-Id: I593a010f83f1a0df6b3419dd4f925380210844c9
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175105
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Artem Titov <titovartem@webrtc.org>
> Reviewed-by: Markus Handell <handellm@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31277}

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

Change-Id: I5e8456ea2918f740428517ee7eb5c561cb016652
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175112
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31280}
2020-05-15 15:54:36 +00:00
Mirko Bonadei
46e9629dda Re-enable absl FailureSignalHandler in tests.
It was not the cause of the SIGSEGV on iossim, so it is fine to
re-enable it.

TBR: titovartem@webrtc.org
Bug: None
Change-Id: I593a010f83f1a0df6b3419dd4f925380210844c9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175105
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31277}
2020-05-15 13:54:16 +00:00
Tommi
6866dc7806 Reland "Make sure that "current" rtc::Thread instances are always current for TaskQueueBase."
This reverts commit 28685dc08c.

Reason for revert: Speculative reland after looking into downstream
failures. It's possible that carryover state from unrelated tests
running in parallel was causing failures.

Original change's description:
> Revert "Make sure that "current" rtc::Thread instances are always current for TaskQueueBase."
> 
> This reverts commit 46b3bc6c24.
> 
> Reason for revert: Speculative revert. Breaks downstream project
> 
> Original change's description:
> > Make sure that "current" rtc::Thread instances are always current for TaskQueueBase.
> > 
> > This is a necessary part of fulfilling the TaskQueueBase
> > interface. If a thread does not register as the current TQ, yet offers
> > the TQ interface, TQ 'current' checks will not work as expected and
> > code that relies them (TaskQueueBase::Current() and IsCurrent())
> > will run in unexpected ways.
> > 
> > Bug: webrtc:11572
> > Change-Id: Iab747bc474e74e6ce4f9e914cfd5b0578b19d19c
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175080
> > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > Commit-Queue: Tommi <tommi@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#31254}
> 
> TBR=mbonadei@webrtc.org,tommi@webrtc.org
> 
> Change-Id: I69ff3355f0ec447b25604bd95fdacbdb4d4f3f27
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:11572
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175104
> Reviewed-by: Artem Titov <titovartem@webrtc.org>
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31259}

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

# Not skipping CQ checks because this is a reland.

Bug: webrtc:11572
Change-Id: I00c82d99af8e05851769e09cb682b5b73895a6f3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175133
Reviewed-by: Tommi <tommi@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31273}
2020-05-15 10:20:03 +00:00
Tommi
9b7232a68c Set up a new rtc::Thread instance per test.
Several tests leave pending tasks behind after executing, which may
affect the state of subsequent tests. This CL isolates each test in
the sense that a dedicated Thread instance is created per test and
then pending tasks are flushed and the Thread instance deleted.

Down the line we may want to improve on this and flag those tests
that leave pending tasks/timers etc.

Change-Id: Ibaf3719a9974c57ac2169edca0e2a06a9ea6c78f
Bug: webrtc:11574
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175132
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31268}
2020-05-15 09:13:02 +00:00
Danil Chapovalov
54706d68f6 In test/ replace mock macros with unified MOCK_METHOD macro
Bug: webrtc:11564
Change-Id: I75496d2f9f5612c4677057ce6fab2a55efa8674a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175129
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31267}
2020-05-15 08:15:02 +00:00
Artem Titov
28685dc08c Revert "Make sure that "current" rtc::Thread instances are always current for TaskQueueBase."
This reverts commit 46b3bc6c24.

Reason for revert: Speculative revert. Breaks downstream project

Original change's description:
> Make sure that "current" rtc::Thread instances are always current for TaskQueueBase.
> 
> This is a necessary part of fulfilling the TaskQueueBase
> interface. If a thread does not register as the current TQ, yet offers
> the TQ interface, TQ 'current' checks will not work as expected and
> code that relies them (TaskQueueBase::Current() and IsCurrent())
> will run in unexpected ways.
> 
> Bug: webrtc:11572
> Change-Id: Iab747bc474e74e6ce4f9e914cfd5b0578b19d19c
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175080
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Tommi <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31254}

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

Change-Id: I69ff3355f0ec447b25604bd95fdacbdb4d4f3f27
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11572
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175104
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31259}
2020-05-14 13:55:22 +00:00
Tommi
46b3bc6c24 Make sure that "current" rtc::Thread instances are always current for TaskQueueBase.
This is a necessary part of fulfilling the TaskQueueBase
interface. If a thread does not register as the current TQ, yet offers
the TQ interface, TQ 'current' checks will not work as expected and
code that relies them (TaskQueueBase::Current() and IsCurrent())
will run in unexpected ways.

Bug: webrtc:11572
Change-Id: Iab747bc474e74e6ce4f9e914cfd5b0578b19d19c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/175080
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31254}
2020-05-14 12:40:42 +00:00
Andrey Logvin
f3319816ad Separate capturing device index from VideoConfig
The last step of the pc framework tests migration.

Bug: webrtc:11534
Change-Id: I344c443b6d21422ef418315b7e5a6cb26ae3473d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174741
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31232}
2020-05-13 09:16:40 +00:00
Andrey Logvin
b856dc1556 Remove VideoGeneratorType from pc framework test api.
VideoGeneratorType wasn't deleted in https://webrtc-review.googlesource.com/c/src/+/174541

Bug: webrtc:11534
Change-Id: I3e631240dc0b28a53e62b65e3dd094b5773fac2c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174721
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31228}
2020-05-12 22:24:36 +00:00
Sam Zackrisson
b0bd0708d6 Surface ResidualEchoDetector creation to API
This allows users to inject the residual echo detector, as a step toward making it an optional part of compilation.

Bug: webrtc:11292, webrtc:11539
Change-Id: I7fcc8dbaced67a82851cd6cdcbc115eb01c21fcf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174040
Reviewed-by: Per Åhgren <peah@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31222}
2020-05-12 10:56:18 +00:00
Artem Titov
f9ed56b656 Add ability to set custom RtpEncodingParameters for each simulcast stream in PC framework
Bug: webrtc:11557
Change-Id: I9f44728ff9178cd9c7dbe4cbcd639d610a981015
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174754
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31218}
2020-05-11 20:46:30 +00:00
Artem Titov
cc57b935cd Make video quality analyzer compatible with real SFU in the network
Bug: webrtc:11557
Change-Id: I8ab1fb0896e267f30856a45df6099bd9aae9bc03
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174801
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31216}
2020-05-11 18:54:33 +00:00
Artem Titov
baa2c836ba Introduce ability to set peer name for PC level tests
Add peer's name to params and use it for logging and metrics naming
for whole peer related metrics.

Bug: webrtc:11479
Change-Id: Ia7e3fc4839c90a958d66910614515ac02a96e389
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174752
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31215}
2020-05-11 18:47:03 +00:00
Erik Språng
3a65dba926 Revert "Removes lock release in PacedSender callback."
This reverts commit 6b9c60b06d.

Reason for revert: Breaks downstream test

Original change's description:
> Removes lock release in PacedSender callback.
> 
> The PacedSender currently has logic to temporarily release its internal
> lock while sending or asking for padding.
> This creates some tricky situations in the pacing controller where we
> need to consider if some thread can enter while we the process thread is
> actually processing, just temporarily busy sending.
> 
> Since the pacing call stack is no longer cyclic, we can actually remove
> this lock-release now.
> 
> Bug: webrtc:10809
> Change-Id: Ic59c605252bed1f96a03406c908a30cd1012f995
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173592
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31206}

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

Change-Id: Ic84eee6097528d0792e3b1f90f36bc78447a0d81
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10809
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174820
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31209}
2020-05-11 11:37:57 +00:00
Per Åhgren
09e9a83d91 Change the way that AecDumps are created in APM
This CL changes the way that AecDumps are created in APM. Instead
of being injected, they are now created via the API.

This removes the AecDumpFactory from the API surface of APM and
makes the API more explicit.

The CL will be followed by one more CL that deprecates the usage
of the AttachAecDump API also within the audio_processing
and the fuzzer folders.

The CL also moves the aec_dump.* files from the include folder
to the aec_dump folder and changes the build files. The reasons
for this are that
1) The content of aec_dump.h is not really part of the API
   surface of APM.
2) Those files anyway needed to be moved to a separate build-
   target to avoid a circular build-file dependency caused by
   the other changes in this CL

Bug: webrtc:5298
Change-Id: I7dd6b49de76eb44158472874e1d4ae17dca9be54
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174750
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31207}
2020-05-11 10:33:00 +00:00
Erik Språng
6b9c60b06d Removes lock release in PacedSender callback.
The PacedSender currently has logic to temporarily release its internal
lock while sending or asking for padding.
This creates some tricky situations in the pacing controller where we
need to consider if some thread can enter while we the process thread is
actually processing, just temporarily busy sending.

Since the pacing call stack is no longer cyclic, we can actually remove
this lock-release now.

Bug: webrtc:10809
Change-Id: Ic59c605252bed1f96a03406c908a30cd1012f995
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173592
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31206}
2020-05-11 09:14:37 +00:00
Tommi
3580706684 Add a RunLoop to RtpReplayer to fix fuzzers
Bug: chromium:1080852
Change-Id: Ia02511cde09994deee222e4f1267d5265d0364ca
Tbr: mbonadei@webrtc.org
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174756
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31196}
2020-05-09 06:45:14 +00:00
Artem Titov
dcde85c912 Pass PeerConfigurerImpl directly into CreateTestPeer
Bug: webrtc:11479
Change-Id: Ib514d264bfd94d648d90a053554537880bd9ebe5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174747
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31188}
2020-05-08 10:56:40 +00:00
Andrey Logvin
435fb9ad06 Remove screen_share_config from the VideoConfig.
After the migration of the pc framework tests (https://webrtc-review.googlesource.com/c/src/+/174023), having "absl::optional<ScreenShareConfig> screen_share_config" field in VideoConfig became redundant. Replaced it with VideoTrackInterface::ContentHint content_hint field.

Bug: webrtc:11534
Change-Id: Ibf4b1c8daed95ef02111fe952171f11e290905d3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174702
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31187}
2020-05-08 08:56:13 +00:00
Tommi
553c869c58 Start consolidating management/querying of stats on the Call thread.
Call is instantiated on what we traditionally call the 'worker thread'
in PeerConnection terms. Call statistics are however gathered, processed
and reported in a number of different ways, which results in a lot of
locking, which is also unpredictable due to the those actions themselves
contending with other parts of the system.

Designating the worker thread as the general owner of the stats, helps
us keeps things regular and avoids loading unrelated task queues/threads
with reporting things like histograms or locking up due to a call to
GetStats().

This is a reland of remaining changes from https://webrtc-review.googlesource.com/c/src/+/172847:
This applies the changes from the above CL to the forked files and
switches call.cc over to using the forked implementation.

Bug: webrtc:11489
Change-Id: I93ad560500806ddd0e6df1448b1bcf5a1aae7583
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174000
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31186}
2020-05-08 07:24:39 +00:00
Andrey Logvin
1e83d34fc1 Remove pc level test framework redundant code.
After the migration to passing frame video source implementation directly, part of the peer connection framework code became redundant. Removing screen_share_config and capturing_device_index from the VideoConfig is to be done in later reviews.

Bug: webrtc:11534
Change-Id: I7a8ea85d26d00fb5bfe7ec0d2facef9c44a0f749
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174541
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31178}
2020-05-07 09:23:29 +00:00
Andrey Logvin
42c59525b1 Create default frame generator in the AddVideoConfig method.
Bug: webrtc:11534
Change-Id: I5f8e6009ac48be99180574ab3ac835005f67cf58
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174540
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31176}
2020-05-06 21:01:29 +00:00
Marina Ciocea
81be4217b8 Remove FrameTransformerInterface functions using EncodedFrame.
Replaced by the function versions using TransformableFrameInterface
downstream.

Bug: webrtc:11380
Change-Id: Ia4aef84dd76b542ba33287aff6c9151448ed5be6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171864
Commit-Queue: Marina Ciocea <marinaciocea@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31170}
2020-05-06 07:26:44 +00:00
Andrey Logvin
c064467b32 Pass frame generator to the AddVideoConfig method in the pc framework tests.
Bug: webrtc:11534
Change-Id: Id68feca50611f412897ddef3d43b811a224b200f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174023
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31167}
2020-05-05 17:20:25 +00:00
Andrey Logvin
dad6a940e1 Add helper frame generator factories for the pc framework tests.
Bug: webrtc:11534
Change-Id: I569fb9e78aa38f0a17f4e4a261dd93c4b8ba9ca0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174340
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31162}
2020-05-04 18:56:22 +00:00
Tommi
9e46cf5cc5 Introduce a RunLoop class that supports the TaskQueue interface
on the current thread.

This simplifies writing async tests that use TaskQueue and doesn't
require spinning up a new thread for simple things. The implementation
is currently based on rtc::Thread, which could also be useful in
some circumstances while migrating code over to TQ.

Remove PressEnterToContinue from the test_common files since
it's very specific and only used from one file.

Bug: none
Change-Id: I8b2c6c40809271a109ec17cf7e1120847645d58a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174260
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31160}
2020-05-04 18:10:00 +00:00
Marina Ciocea
455e80271c Define MockTransformableFrame in test/.
The mock is to be used in frame transformer unit tests.

Bug: webrtc:11380
Change-Id: Id3f6ec71712333232873d8de30e3c7392dc7f5e3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174002
Commit-Queue: Marina Ciocea <marinaciocea@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31155}
2020-05-04 15:17:54 +00:00
Mirko Bonadei
a81e9c82fc Wrap WebRTC OBJC API types with RTC_OBJC_TYPE.
This CL introduced 2 new macros that affect the WebRTC OBJC API symbols:

- RTC_OBJC_TYPE_PREFIX:
  Macro used to prepend a prefix to the API types that are exported with
  RTC_OBJC_EXPORT.

  Clients can patch the definition of this macro locally and build
  WebRTC.framework with their own prefix in case symbol clashing is a
  problem.

  This macro must only be defined by changing the value in
  sdk/objc/base/RTCMacros.h  and not on via compiler flag to ensure
  it has a unique value.

- RCT_OBJC_TYPE:
  Macro used internally to reference API types. Declaring an API type
  without using this macro will not include the declared type in the
  set of types that will be affected by the configurable
  RTC_OBJC_TYPE_PREFIX.

Manual changes:
https://webrtc-review.googlesource.com/c/src/+/173781/5..10

The auto-generated changes in PS#5 have been done with:
https://webrtc-review.googlesource.com/c/src/+/174061.

Bug: None
Change-Id: I0d54ca94db764fb3b6cb4365873f79e14cd879b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173781
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31153}
2020-05-04 15:01:26 +00:00
Marina Ciocea
1148fd5cef Define MockFrameTransformer in test/.
Add MockFrameTransformer to test/, and remove definitions from unit test
files.

Bug: webrtc:11380
Change-Id: Ia709883e8d000852e3f71e7bfb87877072e22aeb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174001
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Marina Ciocea <marinaciocea@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31151}
2020-05-04 13:45:22 +00:00
Andrey Logvin
4381af48b4 Change connection ASSERT into metrics for the PC level framework.
Bug: webrtc:11504
Change-Id: I48b2f44a52b18fd4bb3e75e9ccdcd842ec1faaed
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174022
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31142}
2020-04-28 09:28:13 +00:00
Andrey Logvin
3b9fe99285 Add cpu_usage metrics.
Implemented an analogue of the cpu_usage metrics from third_party/webrtc/video/video_analyzer.h for third_party/webrtc/test/pc/e2e/analyzer/video/default_video_quality_analyzer.h

Bug: webrtc:11496
Change-Id: Ifdc9daa3351f1df5db98beb8f7dc7156fc7c2a16
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/174020
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31141}
2020-04-28 09:24:30 +00:00
Hua, Chunbo
b261118156 Fix a typo for decoder naming
Bug: None
Change-Id: I1e1e7fe1d3efb6e7f302d7633673418b5de7212c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173940
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31135}
2020-04-27 08:03:47 +00:00
Per Åhgren
cc73ed3e70 APM: Add build flag to allow building WebRTC without APM
This CL adds a build flag to allow building the non-test parts
of WebRTC without the audio processing module.
The CL also ensures that the WebRTC code correctly handles
the case when no APM is available.

Bug: webrtc:5298
Change-Id: I5c8b5d1f7115e5cce2af4c2b5ff701fa1c54e49e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/171509
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31133}
2020-04-26 23:06:44 +00:00
Artem Titov
c8660b1650 Open visibility of some PC level framework components
Bug: webrtc:11479
Change-Id: I10567f2766e30825b4d28133002e04dcd0afba21
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173901
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31129}
2020-04-24 16:27:44 +00:00
Artem Titov
3e1ac54407 Refactor video dumping and rendering in PC level test.
Move creation of video sinks for dumping and showing rendered video on
screen into video quality analyzer injection helper to eliminate need
to search for video config in on track callback, which makes this more
reliable and reusable.

Bug: webrtc:11479
Change-Id: I6bb5409688fd39268f9f97bde4c9b0833a64396b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173820
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31128}
2020-04-24 09:59:50 +00:00
Ilya Nikolaevskiy
1fb4a05e9e Reland "Launch external ref control for vp9 encoder"
This reverts commit 9665b7d101.

Reason for revert: Fixes are in the PS#2

Original change's description:
> Revert "Launch external ref control for vp9 encoder"
> 
> This reverts commit 9427b51d6f.
> 
> Reason for revert: Breaks downstream tests
> 
> Original change's description:
> > Launch external ref control for vp9 encoder
> > 
> > Change field trial condition to killswitch instead.
> > 
> > Finch trial is going to 100% public today.
> > 
> > Bug: chromium:1027108,webrtc:11319
> > Change-Id: I29494a7c8515a454706983dd15ae444d3f85271f
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173752
> > Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
> > Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#31122}
> 
> TBR=ilnik@webrtc.org,ssilkin@webrtc.org
> 
> Change-Id: I44436febb2b646cdd350fa9afee1c3a7ea307d04
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: chromium:1027108, webrtc:11319
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173761
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31123}

TBR=ilnik@webrtc.org,ssilkin@webrtc.org

Change-Id: I8aed0edca2015297da512aa084515812103c6f48
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:1027108, webrtc:11319
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173780
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31125}
2020-04-23 13:21:45 +00:00
Danil Chapovalov
4c3a7dbe14 Remove RtpVideoHeader::discardable flag.
Calculate it when used instead

Bug: webrtc:11358
Change-Id: Ib79a4ce5e48a1a5244925471c005f96c5ec5dfd0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173702
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31109}
2020-04-20 10:25:43 +00:00
Danil Chapovalov
ec9fc2208e Delete generic frame descriptor v1 trait and enum value
Bug: webrtc:11358
Change-Id: I272a45881f8ef9963b502c6d17edc97e7d9fbc8e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173582
Reviewed-by: Markus Handell <handellm@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31089}
2020-04-16 17:29:18 +00:00
Erik Språng
e886d2ebc3 Limits size of payload padding packets to 2x target size.
This CL also slightly refactors unit test, to test fewer things each.

Bug: webrtc:11508
Change-Id: I98553d2b185364132c626d373683f38891e36c6d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173620
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31087}
2020-04-16 14:50:31 +00:00
Sebastian Jansson
5c356bb9b1 Cleanup: Removes unused BBR congestion controller.
This was introduced on trial but turned out to perform badly for WebRTC
purposes and never used in production.

Bug: webrtc:9883
Change-Id: Ib72acddf4d90fc9ac042084dddf526c04661f290
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173680
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31085}
2020-04-16 13:49:00 +00:00
Danil Chapovalov
8ec11b8312 Do not register generic frame descriptor v1 in integration tests
Bug: webrtc:11358
Change-Id: I2fb42198d760ba95c5cddc4abb73e58b427aefca
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173585
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31078}
2020-04-15 18:45:43 +00:00
Tommi
3c9bcc1f7a Reland of the test portion of:
https://webrtc-review.googlesource.com/c/src/+/172847

------------ original description --------------

Preparation for ReceiveStatisticsProxy lock reduction.

Update tests to call VideoReceiveStream::GetStats() in the same or at
least similar way it gets called in production (construction thread,
same TQ/thread).

Mapped out threads and context for ReceiveStatisticsProxy,
VideoQualityObserver and VideoReceiveStream. Added
follow-up TODOs for webrtc:11489.

One functional change in ReceiveStatisticsProxy is that when sender
side RtcpPacketTypesCounterUpdated calls are made, the counter is
updated asynchronously since the sender calls the method on a different
thread than the receiver.

Make CallClient::SendTask public to allow tests to run tasks in the
right context. CallClient already does this internally for GetStats.

Remove 10 sec sleep in StopSendingKeyframeRequestsForInactiveStream.

Bug: webrtc:11489
Change-Id: I491e13344b9fa714de0741dd927d907de7e39e83
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173583
Commit-Queue: Tommi <tommi@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31077}
2020-04-15 16:09:44 +00:00
Per Åhgren
fea8b94591 Reland "APM: Remove the usage of AudioFrame in the AudioProcessing interface"
This is a reland of 12e2d4ddb2

Original change's description:
> APM: Remove the usage of AudioFrame in the AudioProcessing interface
> 
> This CL removes the AudioFrame-based APIs from the AudioProcessing
> interface.
> 
> Bug: webrtc:5298
> Change-Id: Iab470b26b10e06dcf29c543851ae0085bc5b66f0
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/172939
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Commit-Queue: Per Åhgren <peah@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#31016}

Bug: webrtc:5298
Change-Id: I70e6d59afc3716ee6109d8b9dc384abc71c93624
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/173476
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31066}
2020-04-14 14:11:06 +00:00