Commit Graph

32495 Commits

Author SHA1 Message Date
40c3ea5c71 Improve screen sharing with PipeWire on Wayland
Changes:
1) Scoped class
This is a special class for GLib based objects which we need to manually
delete with different functions. Wrapping these objects into Scoped class
will destroy them automatically when they go out of scope.

2) Window sharing support
Unlike screen sharing, with window sharing we are required to obtain more
information from the PipeWire stream, like video crop metadata, which we
use to properly set size of our buffer.

3) Support for DmaBuf and MemFd buffer types
As of now, we expected the PipeWire stream will provide only plain data
which we just need to copy to our buffer. We now add support for new
buffer types, which are often preferred for better effeciency.

4) Minor bugfixes:
a) Additionally accept PipeWire streams using alpha channels (BGRA, RGBA)
b) Add lock over PipeWire loop to prevent potential issues until we fully
   intialize everything we need
c) When obtaining buffers, make sure we work with the latest one

Bug: chromium:682122
Change-Id: I64638d5dcbe18e7280550dca0b01b17c511ac98a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/194100
Commit-Queue: Jamie Walch <jamiewalch@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#32763}
2020-12-03 17:33:19 +00:00
ead570c963 Revert "Adds experimental libvpx VP9 speed settings."
This reverts commit 6e7167456b5eba36c7985d6a74f1d191958d4e0f.

Reason for revert: Unexpected perf change

Original change's description:
> Adds experimental libvpx VP9 speed settings.
>
> Using the field trial WebRTC-VP9-PerformanceFlags, this CL allows you to
> configure the libvpx VP9 encoder with a list of flags to affect the
> quality vs speed tradeoff. This CL adds support for:
>
> * Speed (effort), for the temporal base layer frames
> * Speed for higher (non-base) layer frames
> * De-blocking (as part of the loopfilter) enabled for:
>   0 = all frames
>   1 = all but frames from the highest temporal layer
>   2 = no frames
>
> Each entry in the list has a threshold in min number of pixels needed
> for settings in the entry to apply.
>
> Example: Two spatial layers (180p, 360p) with three temporal
> layers are configured. Field trial "WebRTC-VP9-PerformanceFlags" set to:
> "min_pixel_count:0|129600,base_layer_speed:5|8,high_layer_speed:7|8,deblock_mode:1|2"
> This translates to:
> S0:
>   - TL0: Speed 5, deblocked
>   - TL1: Speed 8, deblocked
>   - TL2: Speed 8, not deblocked
> S1:
>   - TL0: Speed 7, not deblocked
>   - TL1: Speed 8, not deblocked
>   - TL2: Speed 8, not deblocked
>
> Bug: webrtc:11551
> Change-Id: Ieef6816d3e0831ff53348ecc4a90260e2ef10422
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/188461
> Reviewed-by: Michael Horowitz <mhoro@webrtc.org>
> Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32749}

TBR=sprang@webrtc.org,ssilkin@webrtc.org,mhoro@webrtc.org

Change-Id: If910963441ac1a0e002aac7066791c7cc7764a1a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:11551
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196344
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32762}
2020-12-03 16:06:13 +00:00
9efeb9b74b Roll chromium_revision 20fa2e0bca..8115efcf14 (833170:833270)
Change log: 20fa2e0bca..8115efcf14
Full diff: 20fa2e0bca..8115efcf14

Changed dependencies
* src/base: 280be4afd4..80ff24a145
* src/build: cb1a5378d7..2d90f5d537
* src/ios: 47172103a1..3ef66a777a
* src/testing: d5559084a6..0143c42c1b
* src/third_party: 6dac8c69fb..101c4e6407
* src/third_party/perfetto: a45552c0f2..9d937e6cbe
* src/tools: 9a93b50695..4c474af392
DEPS diff: 20fa2e0bca..8115efcf14/DEPS

No update to Clang.

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

Change-Id: I6eb798579ce504f0a8f44656bf8ab18bc8adad8f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196420
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32761}
2020-12-03 15:35:11 +00:00
10f76ac226 Move RtpVp9RefFinder unittests into its own file.
Bug: webrtc:12221
Change-Id: I72bb25503d2894aae596426cb40764246c087767
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196342
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32760}
2020-12-03 15:28:21 +00:00
f65a003f7f Fix for 3 NetEq fuzzer issues.
I was not able to reproduce chromium:1146676 locally, so the change in merge.cc is a speculative fix.

Bug: chromium:1146835, chromium:1146676, chromium:1137226
Change-Id: I14472ba5b41e58b2d5f27d9833249c14505af18f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/194264
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32759}
2020-12-03 14:50:18 +00:00
e7b5c1a235 RNN VAD: unit tests for RnnBasedVad
Bug: webrtc:10480
Change-Id: I4ac8ae044261f94db7a1e9559aa61f532602b408
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195446
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32758}
2020-12-03 14:00:03 +00:00
05266ca658 h264: s/StrapA/STAP-A
BUG=None

Change-Id: Iabb091a10f780ff79a0ed95cf5f01ce1a0571e4f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196340
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32757}
2020-12-03 13:09:04 +00:00
d891fd3f6f Disable HMM based transparent mode classifier
The HMM based transparent mode classifier is disabled until an issue
with diverging filters is resolved.

Bug: chromium:1155071
Change-Id: Iee249869f6ece1e48e834b3a4b9249c69a51286c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196341
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32756}
2020-12-03 12:15:49 +00:00
fd5dadbea9 RNN VAD: use VectorMath::DotProduct() for pitch search
This CL brings a large improvement to the RNN VAD CPU performance
by finally using `VectorMath::DotProduct()` for pitch search.

The realtime factor improved from about 390x to 570x for SSE2
(+180x, 45% faster) and to 610x for AVX2 (+235x, 60% faster).

RNN VAD benchmark results:
```
+-----+-------+------+------+
| run | none* | SSE2 | AVX2 |
+-----+-------+------+------+
|   1 | 393x  | 572x | 618x |
|   2 | 388x  | 568x | 607x |
|   3 | 393x  | 564x | 599x |
+-----+-------+------+------+
```
*: baseline, no SIMD used for pitch search, but SSE2 used for the RNN

Results obtained as follows:
1. Force SSE2 in `DISABLED_RnnVadPerformance` for the RNN part in
   order to measure the baseline correctly:
```
RnnBasedVad rnn_vad({/*sse2=*/true, /*avx2=*/true, /*neon=*/false});
```
2. Run the test:
```
$ ./out/release/modules_unittests \
  --gtest_filter=*RnnVadTest*DISABLED_RnnVadPerformance* \
  --gtest_also_run_disabled_tests --logs
```

Bug: webrtc:10480
Change-Id: I89a2bd420265540026944b9c0f1fdd4bfda7f475
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195001
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32755}
2020-12-03 11:50:09 +00:00
be810cba19 Delete SetRtcpXrRrtrStatus, make it a construction-time setting
Bug: None
Change-Id: If2c42af6038c2ce1dc4289b949a0a3a279bae1b9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195337
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32754}
2020-12-03 10:01:01 +00:00
091617dda8 Change TestStunServer::Create to take a SocketServer rather than a thread as argument.
Bug: None
Change-Id: I8b140c8cb40787473411ae55da3738166340127f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/39512
Reviewed-by: Taylor <deadbeef@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32753}
2020-12-03 08:31:41 +00:00
c40073b687 doc: chrome://media-internals is useful for camera issues
BUG=None

No-try: True
Change-Id: I6d1b9b99dce65d6382cbb61756e71989f5f3808a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195326
Commit-Queue: Philipp Hancke <philipp.hancke@googlemail.com>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32752}
2020-12-03 07:15:46 +00:00
5ae40f625d Roll chromium_revision a3682304f6..20fa2e0bca (833048:833170)
Change log: a3682304f6..20fa2e0bca
Full diff: a3682304f6..20fa2e0bca

Changed dependencies
* src/base: b7623540e3..280be4afd4
* src/build: fde84ae94a..cb1a5378d7
* src/testing: 860f06a3cc..d5559084a6
* src/third_party: 7454785fc9..6dac8c69fb
* src/third_party/breakpad/breakpad: 9c4671f2e3..e3d485f73f
* src/third_party/depot_tools: d1655710f7..4640dfbfd7
* src/third_party/perfetto: ae504d46b4..a45552c0f2
* src/tools: 14d109e644..9a93b50695
DEPS diff: a3682304f6..20fa2e0bca/DEPS

No update to Clang.

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

Change-Id: I09bd5c9fe8e504899b322a977d81c21bbec0f960
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196263
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32751}
2020-12-03 07:00:56 +00:00
040ac525e8 Roll chromium_revision 6b50907e9a..a3682304f6 (832826:833048)
Change log: 6b50907e9a..a3682304f6
Full diff: 6b50907e9a..a3682304f6

Changed dependencies
* src/base: abd6cc53ce..b7623540e3
* src/build: 796c41e4d2..fde84ae94a
* src/ios: 090c111df0..47172103a1
* src/testing: 2a615b18c0..860f06a3cc
* src/third_party: ca45917c19..7454785fc9
* src/third_party/depot_tools: 80cea4f5fc..d1655710f7
* src/third_party/perfetto: 1366dd0117..ae504d46b4
* src/tools: e2e72191e2..14d109e644
DEPS diff: 6b50907e9a..a3682304f6/DEPS

No update to Clang.

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

Change-Id: Ia3df061a3619fbabf72d446a9bcc9cf1984afe3b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196262
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32750}
2020-12-03 01:15:46 +00:00
6e7167456b Adds experimental libvpx VP9 speed settings.
Using the field trial WebRTC-VP9-PerformanceFlags, this CL allows you to
configure the libvpx VP9 encoder with a list of flags to affect the
quality vs speed tradeoff. This CL adds support for:

* Speed (effort), for the temporal base layer frames
* Speed for higher (non-base) layer frames
* De-blocking (as part of the loopfilter) enabled for:
  0 = all frames
  1 = all but frames from the highest temporal layer
  2 = no frames

Each entry in the list has a threshold in min number of pixels needed
for settings in the entry to apply.

Example: Two spatial layers (180p, 360p) with three temporal
layers are configured. Field trial "WebRTC-VP9-PerformanceFlags" set to:
"min_pixel_count:0|129600,base_layer_speed:5|8,high_layer_speed:7|8,deblock_mode:1|2"
This translates to:
S0:
  - TL0: Speed 5, deblocked
  - TL1: Speed 8, deblocked
  - TL2: Speed 8, not deblocked
S1:
  - TL0: Speed 7, not deblocked
  - TL1: Speed 8, not deblocked
  - TL2: Speed 8, not deblocked

Bug: webrtc:11551
Change-Id: Ieef6816d3e0831ff53348ecc4a90260e2ef10422
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/188461
Reviewed-by: Michael Horowitz <mhoro@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32749}
2020-12-02 19:20:57 +00:00
6efb0310ec Set default max_threads_count to DVQA injection helper
Bug: webrtc:12247
Change-Id: I608cffad7ee5397c306fb03a36d89f31882c112c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196092
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32748}
2020-12-02 18:49:22 +00:00
9c296e5b9e Fix DVQA cpu usage when Stop is called multiple times
Bug: webrtc:12247
Change-Id: I946338e0ecf58f91c87c8638977a8bc52e648fd2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196083
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32747}
2020-12-02 18:48:17 +00:00
8dbbd648e7 Revert "Ignore frames that are comming to DVQA after Stop is called"
This reverts commit 8d4cdd11d8d4ce3e6ddbe9c729c7cfbd8f495880.

Reason for revert: Upstream project needs have changed

Original change's description:
> Ignore frames that are comming to DVQA after Stop is called
>
> Bug: webrtc:12247
> Change-Id: Ie3e773bdff66c900956019ac3131bbdb9ee874cd
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196084
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Andrey Logvin <landrey@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#32738}

TBR=mbonadei@webrtc.org,srte@webrtc.org,landrey@webrtc.org

Change-Id: Ie7483435eae9b0344f875673ca9651ff4d591bd3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:12247
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196280
Reviewed-by: Andrey Logvin <landrey@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32746}
2020-12-02 18:42:58 +00:00
b6e840c036 RNN VAD: SSE2 optimization for VectorMath::DotProduct
Bug: webrtc:10480
Change-Id: I9f40352308bbfd5ea72a2607e7d1184cb6b85333
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/194328
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32745}
2020-12-02 16:59:06 +00:00
04ee79c749 Roll chromium_revision a4b950c23d..6b50907e9a (832520:832826)
Change log: a4b950c23d..6b50907e9a
Full diff: a4b950c23d..6b50907e9a

Changed dependencies
* src/base: 9af91c9dfd..abd6cc53ce
* src/build: f77495615a..796c41e4d2
* src/ios: a840aed7b9..090c111df0
* src/testing: 660c09e212..2a615b18c0
* src/third_party: 53a984ed65..ca45917c19
* src/third_party/android_build_tools/bundletool: gB66fGCdzqmQO6U6hxhoZDCGjOg-oqxhT_4uywaUw1oC..FIj7ed-law2zMv41QhjEXabkaJ7aN2ztmE0Tv3Z_gFUC
* src/third_party/depot_tools: 684460d29e..80cea4f5fc
* src/third_party/perfetto: 6d300e3738..1366dd0117
* src/tools: a49dfb87b0..e2e72191e2
* src/tools/swarming_client: d46ea7635f..1a072711d4
DEPS diff: a4b950c23d..6b50907e9a/DEPS

No update to Clang.

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

Change-Id: I0535eac1084106fce481cd9675b763f2ffb75575
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196260
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32744}
2020-12-02 16:40:40 +00:00
e301c18eb7 Add landrey as an owner to PC framework code
While Artem is OOO there is no owner over PC framework changes that can appove CLs.

Bug: webrtc:12247
Change-Id: I70aa5e1263efa9c0971a077ecbb247a7c41991cd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196091
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32743}
2020-12-02 16:34:41 +00:00
76443eafa9 Add support for toggling builtin voice processing on iOS
Bug: None
Change-Id: I3b64afdaed4777960124f248840f36598bba2ed4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195443
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32742}
2020-12-02 16:07:01 +00:00
01b3e24a83 RNN VAD: VectorMath::DotProduct with AVX2 optimization
This CL adds a new library for the RNN VAD that provides (optimized)
vector math ops. The scheme is the same of the `VectorMath` class of AEC3
to ensure correct builds across different platforms.

Bug: webrtc:10480
Change-Id: I96bcfbf930ca27388ab5f2d52c022ddb73acf8e6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/194326
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32741}
2020-12-02 15:13:15 +00:00
ccfcec402d Adds more owners to api/test
Bug: None
Change-Id: Ica95e15f8521274c41b475d8c39a0b27a50c7724
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196090
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32740}
2020-12-02 11:19:55 +00:00
253f8369bb AGC2 RNN VAD: safe SIMD optimizations scheme + AVX2 kill switch
In preparation for adding AVX2 code, a safe scheme to support
different SIMD optimizations is added.

Safety features:
- AVX2 kill switch to stop using it even if supported by the
  architecture
- struct indicating the available CPU features propagated from
  AGC2 to each component; in this way
  - better control over the unit tests
  - no need to propagate individual kill switches but just
    set to false features that are turned off

Note that (i) this CL does not change the performance of the RNN VAD
and (ii) no AVX2 optimization is added yet.

Bug: webrtc:10480
Change-Id: I0e61f3311ecd140f38369cf68b6e5954f3dc1f5a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/193140
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32739}
2020-12-02 10:09:24 +00:00
8d4cdd11d8 Ignore frames that are comming to DVQA after Stop is called
Bug: webrtc:12247
Change-Id: Ie3e773bdff66c900956019ac3131bbdb9ee874cd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196084
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32738}
2020-12-02 09:22:14 +00:00
1afe2be9a9 Update webrtc guava dependency part 2
This CL renames webrtc guava dependencies from
third_party/guava:guava_android_java that I missed in
https://webrtc-review.googlesource.com/c/src/+/195720

BUG=chromium:2560401

Change-Id: I702cdbe10af57070b5a9db3b8f4ba913489fe42e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196181
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32737}
2020-12-02 07:48:34 +00:00
52c59c6aaf Roll chromium_revision 1dccbc81bd..a4b950c23d (832322:832520)
Change log: 1dccbc81bd..a4b950c23d
Full diff: 1dccbc81bd..a4b950c23d

Changed dependencies
* src/base: 185d864db4..9af91c9dfd
* src/build: 4fd0dec37b..f77495615a
* src/ios: a89e8fe7b6..a840aed7b9
* src/testing: 52b0052721..660c09e212
* src/third_party: 7323d17ead..53a984ed65
* src/third_party/depot_tools: 6d2a0fef93..684460d29e
* src/third_party/freetype/src: 56c610b145..8cc4d0dc32
* src/third_party/perfetto: 05e6cccec4..6d300e3738
* src/tools: 8f4606b16c..a49dfb87b0
DEPS diff: 1dccbc81bd..a4b950c23d/DEPS

No update to Clang.

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

Change-Id: I7e7512543fe6a56c3cfd6fa8a1fb340193a75e0e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196141
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32736}
2020-12-01 23:00:29 +00:00
69662a99d3 Add API Level guard for allowedCapturePolicy
AudioAttributes::getAllowedCapturePolicy was added in API Level 29.
Update WebRtcAudioTrack to add API Level check before using the API.

Bug: webrtc:12250
Change-Id: Ica6604eb1d7fa736a0e64729a022eefcfb7b3020
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195941
Commit-Queue: Gaurav Vaish <gvaish@chromium.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32735}
2020-12-01 22:59:25 +00:00
449a78b1e2 Prevent window enumeration deadlock and add unit tests.
For some time now, calls to EnumerateCapturableWindows could lead to a
deadlock if an application's main thread is waiting on the thread that
is running EnumerateCapturableWindows. This is because calls to
GetWindowText and GetWindowTextLength send a message to the window if
the window is owned by the current process. Since the main thread is
waiting on us, it will never reply to this message and we will hang.

This happens occasionally in Chromium when tearing down the
NativeDesktopMediaList object, e.g. when a user clicks "cancel" on
the capture target picker.

We can avoid this deadlock by checking if the window we are querying
is owned by the current process, and if it is then we must ensure it
is responding to messages before we call a GetWindowText* API.

This change also adds a unit test for this scenario. We create a
window and force it to be unresponsive by creating a deadlock, and
then call GetWindowList and (with the new changes) we should not
hang. Without the new changes to GetWindowListHandler, this test
would hang.

Change-Id: I2523cd735f96fd7ea60708c30cd22e5b525803f0
Bug: chromium:1152841
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195365
Commit-Queue: Austin Orion <auorion@microsoft.com>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#32734}
2020-12-01 20:17:22 +00:00
0496a41211 Add class InterArrivalDelta to goog_cc
This cl copies modules/remote_bitrate_estimator/inter_arrival.x to inter_arrival.h and interrival_delta.cc in goog_cc in the first patchset.
In the following- this class is modified to use webrtc::Timestamp and webrtc::Timedelta in order to avoid having to use 24 bit time repressentation.

Bug: none
Change-Id: I9befe6e3e283cf7e21efa974ae33e8a83e26cbe6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/194004
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32733}
2020-12-01 20:13:12 +00:00
58678a0eb7 Fix 'iOS API Framework Builder'.
When building WebRTC.framework, building the XCTest test runner is a
problem because it requires Chromium's //base checkout. This workaround
allows to skip that.

No-Presubmit: True
Bug: webrtc:12134
Change-Id: I0d99bd03f27911f46679ee91b0120e7121d1c7d7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196081
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32732}
2020-12-01 15:21:23 +00:00
f8aed2fb9f Roll chromium_revision 5e6f1ed54f..1dccbc81bd (832199:832322)
Change log: 5e6f1ed54f..1dccbc81bd
Full diff: 5e6f1ed54f..1dccbc81bd

Changed dependencies
* src/base: 565c3b7373..185d864db4
* src/build: 39ee8199e6..4fd0dec37b
* src/ios: e021e5ce31..a89e8fe7b6
* src/testing: 8a83254bed..52b0052721
* src/third_party: 6815222c2a..7323d17ead
* src/third_party/depot_tools: 1af7968d68..6d2a0fef93
* src/third_party/perfetto: 42433abb95..05e6cccec4
* src/tools: 7bbeac3480..8f4606b16c
DEPS diff: 5e6f1ed54f..1dccbc81bd/DEPS

No update to Clang.

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

Change-Id: If4728739429c74da9e743d329e1aed0121d71a67
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196140
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32731}
2020-12-01 15:00:13 +00:00
625964f6e0 Update webrtc guava dependency
This CL renames webrtc guava dependencies from
third_party/guava:guava_android_java  to
//third_party/android_deps:guava_android_java

This is in preparation for deleting third_party/guava:guava_android_java

BUG=chromium:2560401

No-Presubmit: True
Change-Id: If9227f4ac4d24386896c47eeb38142a76a27a4ea
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195720
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32730}
2020-12-01 14:54:03 +00:00
39f09b4c83 Handle AV1 without DependencyDescriptor.
Bug: webrtc:12221
Change-Id: I757c9407d71131a15e5d6b274e16c7a639512761
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196080
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Lahiru Ginnaliya Gamathige <glahiru@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32729}
2020-12-01 12:36:42 +00:00
f30c47fc79 Add Chromium metrics OWNERS as OWNERS of api/uma_metrics.h
As requested on bugs.webrtc.org/12096#c2, this CL adds a Chromium
metric OWNERS in order to always have their review when WebRTC's UMA
metrics are updated.

Bug: webrtc:12096
Change-Id: Icd9ab7dda5f7a4ba6ac078f667c1fd39f3314123
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/191702
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32728}
2020-12-01 10:34:17 +00:00
582ffe27df Take out the RTCPSender object under test from the test fixture
Intended to make it easier to write tests varying the
construction-time settings.

Bug: None
Change-Id: I397beee8f7ab48c79ecd095d7e8486f93f9d9b17
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195544
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32727}
2020-12-01 10:24:31 +00:00
6562109fc9 test: do not consider flexfec-03 a normal codec
BUG=None

Change-Id: I5d3720202893d73d467aac0288bc5fdef52f79e8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/194262
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32726}
2020-12-01 10:23:26 +00:00
9a12ee5d37 Use frame rate in video overhead calculation.
Assume bitrate is evenly distributed between frames. This is wrong for
uneven frame sizes and will underestimate the overhead for simulcast.
However, it will be more correct than the current calculation,
especially for low bitrates when each frame is smaller than one packet.
This is also when overhead matters more since it is a larger fraction
of the total bitrate.

It is also unclear what will happen when using FEC.

Bug: b/166341943
Change-Id: I247b9d0fc7a8ad5daa9b577f55ec16c56efa34c3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195221
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Jakob Ivarsson <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32725}
2020-12-01 09:42:40 +00:00
a420547865 modules/video_processing: replace copy memory with libyuv::CopyPlane
Bug: None
Change-Id: I4c41117028a6602e8d2cb627868d015422ef0b15
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195487
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Zhaoliang Ma <zhaoliang.ma@intel.com>
Cr-Commit-Position: refs/heads/master@{#32724}
2020-12-01 07:24:43 +00:00
b3f1e0fdb4 Roll chromium_revision 8bf715889f..5e6f1ed54f (832086:832199)
Change log: 8bf715889f..5e6f1ed54f
Full diff: 8bf715889f..5e6f1ed54f

Changed dependencies
* src/base: 4d009acb79..565c3b7373
* src/build: 74e52e7a7d..39ee8199e6
* src/ios: a5c3e28696..e021e5ce31
* src/testing: ab5649e834..8a83254bed
* src/third_party: 39e687569f..6815222c2a
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/146912bb62..5537c03942
* src/third_party/depot_tools: f819411f2a..1af7968d68
* src/third_party/perfetto: f37338cdaa..42433abb95
* src/tools: 9275bac201..7bbeac3480
DEPS diff: 8bf715889f..5e6f1ed54f/DEPS

No update to Clang.

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

Change-Id: Ic41536b2421a91d0ddc69d955695228341d82eb2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196002
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32723}
2020-12-01 04:41:43 +00:00
9b0f2b30e5 Roll chromium_revision d28771013b..8bf715889f (831953:832086)
Change log: d28771013b..8bf715889f
Full diff: d28771013b..8bf715889f

Changed dependencies
* src/base: a4bd1d8b3b..4d009acb79
* src/build: c044db6dfd..74e52e7a7d
* src/ios: dae1ac764d..a5c3e28696
* src/testing: 6daf6d0b50..ab5649e834
* src/third_party: 6ab48759c4..39e687569f
* src/third_party/depot_tools: eb386eb3d2..f819411f2a
* src/tools: 3f45fb86ac..9275bac201
DEPS diff: d28771013b..8bf715889f/DEPS

No update to Clang.

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

Change-Id: I6b12e521bb7f7a3ec80cb94f4b5b1288f5b28283
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/196020
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32722}
2020-12-01 00:57:22 +00:00
3704603cc0 Roll chromium_revision d99eda17c0..d28771013b (831830:831953)
Change log: d99eda17c0..d28771013b
Full diff: d99eda17c0..d28771013b

Changed dependencies
* src/base: ba32a25741..a4bd1d8b3b
* src/build: 3328d0bdee..c044db6dfd
* src/ios: b7dec422d2..dae1ac764d
* src/testing: 08db542028..6daf6d0b50
* src/third_party: cf672b2448..6ab48759c4
* src/third_party/depot_tools: dc7b108da6..eb386eb3d2
* src/tools: 3692ffb6a3..3f45fb86ac
DEPS diff: d99eda17c0..d28771013b/DEPS

No update to Clang.

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

Change-Id: Ib1c08777cd31e10f7d6f5030edd8499835d9caef
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195980
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32721}
2020-11-30 21:07:21 +00:00
83a5a20afe Roll chromium_revision 6afe1bbaba..d99eda17c0 (831717:831830)
Change log: 6afe1bbaba..d99eda17c0
Full diff: 6afe1bbaba..d99eda17c0

Changed dependencies
* src/base: 84b4ee8c94..ba32a25741
* src/build: 425e151f06..3328d0bdee
* src/ios: eef3a69f73..b7dec422d2
* src/testing: 88c7098f26..08db542028
* src/third_party: 0ece487b4a..cf672b2448
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/7598272651..146912bb62
* src/tools: bdd6677946..3692ffb6a3
DEPS diff: 6afe1bbaba..d99eda17c0/DEPS

No update to Clang.

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

Change-Id: Ia13808de69417efddb7a37f59200fa92586553c8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195900
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32720}
2020-11-30 14:33:21 +00:00
41774435f3 Roll chromium_revision 4559b6b576..6afe1bbaba (831617:831717)
Change log: 4559b6b576..6afe1bbaba
Full diff: 4559b6b576..6afe1bbaba

Changed dependencies
* src/base: 788e3c7e90..84b4ee8c94
* src/build: e1db346d5d..425e151f06
* src/testing: 112ad8ea26..88c7098f26
* src/third_party: cdcbc294eb..0ece487b4a
* src/third_party/perfetto: 6cdb496e99..f37338cdaa
* src/tools: 2a1184f6a0..bdd6677946
DEPS diff: 4559b6b576..6afe1bbaba/DEPS

Clang version changed llvmorg-12-init-12083-g94e4ec64:llvmorg-12-init-12923-g6ee22ca6
Details: 4559b6b576..6afe1bbaba/tools/clang/scripts/update.py

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

Change-Id: If8173977e86b60d47e314d467446796f3521c205
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195740
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32719}
2020-11-29 10:24:08 +00:00
347dc75cb5 Roll chromium_revision 3e0e8c532b..4559b6b576 (831500:831617)
Change log: 3e0e8c532b..4559b6b576
Full diff: 3e0e8c532b..4559b6b576

Changed dependencies
* src/base: 91a7c0ba49..788e3c7e90
* src/build: 169d15ccdb..e1db346d5d
* src/ios: d13be65165..eef3a69f73
* src/testing: 913fc377e5..112ad8ea26
* src/third_party: 2336f7db95..cdcbc294eb
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/ae003f552e..7598272651
* src/third_party/freetype/src: 3facafa44e..56c610b145
* src/third_party/perfetto: 254ea334b6..6cdb496e99
* src/tools: 920424e54d..2a1184f6a0
DEPS diff: 3e0e8c532b..4559b6b576/DEPS

No update to Clang.

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

Change-Id: I013cb313d20d3b997558b1a9d0c9ddba94106429
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195640
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#32718}
2020-11-27 18:27:58 +00:00
4e702169e4 Break RtpFrameReferenceFinder into descriptor specific parts.
This CL breaks out descriptor specific parts into separate classes. All logic in the newly added classes is just copy pasted from the (previously massive) RtpFrameReferenceFinder with the exception of how frames are being returned, which is now done via return value rather than a callback. Basically, all interesting changes have been made in the RtpFrameReferenceFinder.

Bug: webrtc:12221
Change-Id: I5f958d2fbf4b77ba11c3c6c01d8d0d80e325be60
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195448
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32717}
2020-11-27 17:59:28 +00:00
e99b6ccb9b Build and run iOS tests as XCTests.
After upgrading to xcode 12, some Gtest tests have started to randomly
fail. The solution around this problem is to build and run GTests as
XCTests.

In order to achieve that, the CL sets enable_run_ios_unittests_with_xctest
to true in all iOS builds and adds a dependency on
//base/test:google_test_runner for each Gtest that needs to run as an
XCTest.

Real XCTest don't need the dependency and they are marked with the
rtc_test() argument `is_xctest=true` (apprtcmobile_tests, sdk_unittests
and sdk_framework_unittests).

This CL is based on [1] which passes --xctest to the runner and uses
--undefok to avoid to crash when absl/flags doesn't recognize the
flag --enable-run-ios-unittests-with-xctest (absl/flags cannot have "-"
in flags so WebRTC binaries cannot define that flag). To workaround the
issue, WebRTC tests always behave like
--enable-run-ios-unittests-with-xctest is always set (by linking only
with //base/test:google_test_runner to run iOS tests).

This fixes iOS12 and iOS13 tests but not iOS14 on which some tests
are failing because of restricted access to resources (this will be
addressed in another CL).

Long term, this solution might cause problems when Chromium decides
to update test() GN template and/or the test launcher, so WebRTC should
plan a better integration with Chromium's iOS infra.

[1] - https://chromium-review.googlesource.com/c/chromium/tools/build/+/2550656

Bug: webrtc:12134
Change-Id: I24c731dee0310e02ae1bbe6c23d359d6fcd18f17
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/193620
Reviewed-by: Jeremy Leconte <jleconte@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32716}
2020-11-27 15:39:58 +00:00
bcca3b08a9 Improve dashboard upload script so the errors are more understandable
No-Presubmit: True
Bug: None
Change-Id: I2bc297fddacd33037a7c77107d653da87dd2737e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195560
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32715}
2020-11-27 15:26:58 +00:00
cde4a9f669 Enable initial frame drop for SVC 'singlecast'
Bug: none
Change-Id: Ideda726f4f7df5e92556048a199cda06261e76b4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/195542
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32714}
2020-11-27 14:08:45 +00:00