Commit Graph

38506 Commits

Author SHA1 Message Date
a5c6000e92 Revert "Split out generic portal / pipewire code"
This reverts commit e6ec81a89ca904f1816b76456426babc28a9d767.

Reason for revert: Assert on line 14, modules/portal/BUILD.gn breaks in downstream build. Reverting until it has been investigated.

Original change's description:
> Split out generic portal / pipewire code
>
> It will be reused by the video capture portal / pipewire backend.
>
> Bug: webrtc:13177
> Change-Id: Ia1a77f1c6e289149cd8a1d54b550754bf192e62e
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/263721
> Reviewed-by: Mark Foltz <mfoltz@chromium.org>
> Commit-Queue: Alexander Cooper <alcooper@chromium.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
> Reviewed-by: Salman Malik <salmanmalik@google.com>
> Cr-Commit-Position: refs/heads/main@{#38487}

Bug: webrtc:13177
Change-Id: I18deb5c78a54261f77693e7e31dba6f98f5eeb5d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280947
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Owners-Override: Björn Terelius <terelius@webrtc.org>
Auto-Submit: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38496}
2022-10-28 17:40:27 +00:00
c371a13273 Periodically probe if current estimate lower than a ratio of NetworkState estimate
This replace the immmediate probing if NetworkState estimate change.


Bug: webrtc:14392
Change-Id: I2cc79c21015a4da2e6cba2098f1bc3c69944821f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280741
Reviewed-by: Diep Bui <diepbp@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38495}
2022-10-28 13:56:29 +00:00
8fe5579136 Ensure video frame buffer is still decodable before decoding
This ensures that if for some reason, the frame buffer becomes
undecodable while waiting to decode a frame, the decoding is halted.
This also guards against receiving an empty temporal unit from the frame
buffer, even though this should never happen when the frame buffer has a
decodable temporal unit.

Bug: chromium:1378253, chromium:1361623
Change-Id: I8c4c897bf474d5cbda5f0f357781bf1dc0701fe4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280701
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38494}
2022-10-28 13:07:40 +00:00
aa8f28d082 Fix UAF in MultiplexDecoderFactory::GetSupportedFormats
Bug: chromium:1378571
Change-Id: I01f105a2f2820af440cf64c654b321f34186d7e0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280961
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Auto-Submit: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38493}
2022-10-28 13:06:35 +00:00
c350113a63 Remove "Using FrameBuffer3" log
Bug: None
Change-Id: Idb190632fa9afa420cb8fb0b24f8c02a0e448a02
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280946
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38492}
2022-10-28 13:05:32 +00:00
d393543110 [PCLF] Use resolution from video subscription to dump video
Bug: b/240540204
Change-Id: I8f91cc68fc52de457e89f3b6247970b479b5f118
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280420
Reviewed-by: Andrey Logvin <landrey@google.com>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38491}
2022-10-28 11:11:53 +00:00
55bb93d4c7 Roll chromium_revision cb1f943704..c192181684 (1063624:1064762)
Change log: cb1f943704..c192181684
Full diff: cb1f943704..c192181684

Changed dependencies
* src/base: 51f1692226..b6a09b31bf
* src/build: adcb30617a..34ffc9108e
* src/buildtools: 4c4e17b5b6..c50c0de424
* src/buildtools/linux64: git_revision:7a6231e3e43845d9aa298bb040f11dd1953e966f..git_revision:11dc0b1f438bd26380774e9d50fd4c63f346d41a
* src/buildtools/mac: git_revision:7a6231e3e43845d9aa298bb040f11dd1953e966f..git_revision:11dc0b1f438bd26380774e9d50fd4c63f346d41a
* src/buildtools/third_party/libc++/trunk: 0487904cc4..37a5b4fbc2
* src/buildtools/third_party/libc++abi/trunk: 519e9ef6cc..c7b6fcf28a
* src/buildtools/third_party/libunwind/trunk: 1f633d41a0..aabcd87536
* src/buildtools/win: git_revision:7a6231e3e43845d9aa298bb040f11dd1953e966f..git_revision:11dc0b1f438bd26380774e9d50fd4c63f346d41a
* src/ios: 00dede68db..8b62a2122d
* src/testing: d053d375d2..d6e0d9a8be
* src/third_party: a99f046710..185ea9afbf
* src/third_party/androidx: PFI-NApEtsVE6mgPG_R9M2FdxQ-jMwQJ5MWdj8kiR-0C..zb-sVbF1SiYz0bi0xxvkrNO_6dQ8pvss2AsPb0wewXMC
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/2f63d551c8..3ffa6b2228
* src/third_party/depot_tools: 1f51102073..6f2321d1de
* src/third_party/libaom/source/libaom: https://aomedia.googlesource.com/aom.git/+log/08ea764546..7f32eb35ff
* src/third_party/perfetto: 729ee8a7a6..cb8281edbb
* src/third_party/r8/d8: 3UHV-FPycJ3i6x5eSFsm4kDkCEAYXif0Fk5WG595Q0IC..IX2rED7eRTrkn8ic1_nOE1NE6XY19Px1YxsqwNfCNq4C
* src/tools: a9b89dc469..37735dcbaa
DEPS diff: cb1f943704..c192181684/DEPS

Clang version changed llvmorg-16-init-8189-g97196a2d:llvmorg-16-init-8697-g60809cd2
Details: cb1f943704..c192181684/tools/clang/scripts/update.py

NOTRY=true
BUG=b/256014657

Change-Id: I551a4233f7bfdb2d06423e5195b3b7f25b64c6bd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280942
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38490}
2022-10-28 11:09:32 +00:00
bb4ccf8495 Pre echo delay estimator: Explicitly considering the initial region when updating the pre echo delay histogram.
Bug: webrtc:14205
Change-Id: Iaa075a52c07ab87fe21da7c40be806c7f80f0e32
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280540
Reviewed-by: Lionel Koenig <lionelk@webrtc.org>
Reviewed-by: Lionel Koenig <lionelk@google.com>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38489}
2022-10-28 07:02:58 +00:00
f36d607c4a Remove the possibility to disable IPv6 in Java and ObjC.
It's deprecated and has been removed from Chrome. Let's follow suite.

// Passing all but unrelated bots
NOTRY=True

Bug: webrtc:14608
Change-Id: I6f2601af5b1dc08164230ebf15db2d2f1754f9e5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280740
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38488}
2022-10-27 19:45:58 +00:00
e6ec81a89c Split out generic portal / pipewire code
It will be reused by the video capture portal / pipewire backend.

Bug: webrtc:13177
Change-Id: Ia1a77f1c6e289149cd8a1d54b550754bf192e62e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/263721
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Alexander Cooper <alcooper@chromium.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Salman Malik <salmanmalik@google.com>
Cr-Commit-Position: refs/heads/main@{#38487}
2022-10-27 17:59:24 +00:00
0ca53b77ae SharedScreenCastStream test: increase waiting times
This doesn't effect for how long the test will run, it just gives
PipeWire more time to establish connection and create empty buffers
before we try to work with it. All the waiting events will be
interrupted by signals once we no longer need to wait so it doesn't
matter if we wait 2 seconds or 5 seconds.

Bug: webrtc:14568
Change-Id: Ie918e8943bf882059b1289f57595fc302216745e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280700
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Jan Grulich <grulja@gmail.com>
Cr-Commit-Position: refs/heads/main@{#38486}
2022-10-27 17:18:49 +00:00
08b882d762 ice: include tiebreaker in computation of foundation attribute
the foundation attribute is currently calculated as
  CRC32(baseaddress, protocol, relayprotocol)
which is a way to satisfy the requirements from
  https://www.rfc-editor.org/rfc/rfc5245#section-4.1.1.3

However, this leaks the base address which defeats the
MDNS obfuscation described in
  https://datatracker.ietf.org/doc/draft-ietf-mmusic-mdns-ice-candidates/
since the CRC32 can be reversed using a table lookup as shown in
  https://github.com/niespodd/webrtc-local-ip-leak/

To defeat that lookup, "seed" the CRC32 with the ICE tie-breaker which is a randomly picked unsigned 64 bit integer described in
  https://www.rfc-editor.org/rfc/rfc5245#section-5.2

The tie-breaker is not known to Javascript and adding it scopes the foundation within the peer connection as described in section 4.1.1.3

To manually test (preferably with a DCHECK for IceTiebreaker() in ComputeFoundation)
- gather candidates twice on https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ and observe that the foundations are not the same after this change
- create two RTCPeerConnections with {iceCandidatePoolSize: 1}, create a datachannel, call setLocalDescription, inspect the candidates and observe that the foundations are not the same after this change.

Unit test changes have been split into a separate CL for easier integration.

BUG=webrtc:14605

Change-Id: I6bbad1635b48997b00ae74d251ae357bf8afd12f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280621
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38485}
2022-10-27 15:50:02 +00:00
fbe5d7c3d4 Reland "APM: log both applied and recommended input volume stats"
This is a reland of commit 8d7273357d92fab881561d886ce8dfe94e6e2238

Root cause:
audioproc_f doesn't call `metrics::Enable()` and therefore the stats
reporter crashed when `metrics::HistogramFactoryGetCountsLinear()`
returned a nullptr.

Bug fix:
Added `InputVolumeStatsReporter::cannot_log_stats_`, a const flag
that is set to true if any histogram factory returns a nullptr.
When true, the class does nothing.

This CL also includes other code readability improvements that were
not part of the original CL.

Original change's description:
> APM: log both applied and recommended input volume stats
>
> This CL replaces the existing `WebRTC.Audio.ApmAnalogGain.*` stats
> with `WebRTC.Audio.Apm.AppliedInputVolume.*` and adds the
> `WebRTC.Audio.Apm.RecommendedInputVolume.*` stats.
>
> Bug: webrtc:7494
> Change-Id: I70be710d20b1589fc814cbce3d3329ac1500686f
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280220
> Reviewed-by: Hanna Silen <silen@webrtc.org>
> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#38468}

Bug: webrtc:7494
Change-Id: I8373d16beb06b84f439d2c2274ededea7c5e95b0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280661
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Hanna Silen <silen@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38484}
2022-10-27 14:40:40 +00:00
aebba7b468 [Stats] Expose totalPacketSendDelay for audio as well.
This information is now readily available. Let's expose it.

In practise we don't pace audio by default and the delay is ~0, however
we can tell that this metric is working as intended by setting
PacingController's pace_audio_ to true via the "WebRTC-Pacer-BlockAudio"
field trial. In this case chrome://webrtc-internals/ plots neats graphs
for audio send delay.

Bug: webrtc:10635
Change-Id: Iecfd93bb84ec61e5d54232769a9e7a500601b199
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280523
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38483}
2022-10-27 10:33:16 +00:00
86cfcc5eef Vp9Test: Always expect StreamLayersConfig to be present.
The scalability mode should now be supported for all test configurations.

Bug: none
Change-Id: I79aeb56b35d62265c94edefdbcb10c6835bc2750
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280200
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38482}
2022-10-27 08:56:21 +00:00
b4c96d6476 Update IWYU mappings with a few more lines.
Also run IWYU on a file picked for testing and check in the result.

Bug: none
Change-Id: Ide36bc59d126064f2bab7af441f72a6e8477c848
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280601
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38481}
2022-10-26 22:58:55 +00:00
d81992197c [Stats] Update totalPacketSendDelay to only cover time in pacer queue.
This metric was always supposed to be the spec's answer to
googBucketDelay, and is defined as "The total number of seconds that
packets have spent buffered locally before being transmitted onto the
network." But our implementation measured the time between capture and
send, including encode time. This is incorrect and yields a much larger
value than expected.

This CL updated the metric to do what the spec says. Implementation-wise
we measure the time between pushing and popping each packet from the
queue (in modules/pacing/prioritized_packet_queue.cc).

The spec says to increment the delay counter at the same time as we
increment the packet counter in order for the app to be able to do
"delta totalPacketSendDelay / delta packetSent". For this reason,
`total_packet_delay` is added to RtpPacketCounter. (Previously, the
two counters were incremented on different threads and observers.)

Running Google Meet on a good network, I could observe a 2-3 ms average
send delay per packet with this implementation compared to 20-30 ms
with the old implementation. See b/137014977#comment170 for comparison
with googBucketDelay which is a little bit different by design -
totalPacketSendDelay is clearly better than googBucketDelay.

Since none of this depend on the media kind, we can wire up this metric
for audio as well in a follow-up:
https://webrtc-review.googlesource.com/c/src/+/280523

Bug: webrtc:14593
Change-Id: If8fcd82fee74030d0923ee5df2c2aea2264600d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280443
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38480}
2022-10-26 21:29:20 +00:00
c34a8c19c6 Reland "APM: rename AnalogGainStatsReporter to InputVolumeStatsReporter"
This reverts commit 6a18f06bd09fdeaad6e6e00d098fc50ab946ed40.

Reason for revert: reverted by mistake

Original change's description:
> Revert "APM: rename `AnalogGainStatsReporter` to `InputVolumeStatsReporter`"
>
> This reverts commit b5319fabeeda4ffbf58f28f4ee3d5c7c3868fb3b.
>
> Reason for revert: audioproc_f crash 
>
> Original change's description:
> > APM: rename `AnalogGainStatsReporter` to `InputVolumeStatsReporter`
> >
> > Adopt the new naming convention, which replaces "analog gain" and
> > "mic level" with "input volume", in the input volume stats reporter.
> >
> > Bug: webrtc:7494
> > Change-Id: Ia24876151f51dd1dcc4e4f9db56c64d11ae3b442
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/279840
> > Reviewed-by: Hanna Silen <silen@webrtc.org>
> > Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#38467}
>
> Bug: webrtc:7494
> Change-Id: Ia943a57c93fc77eb8450fab17961e60774e10f02
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280600
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
> Auto-Submit: Alessio Bazzica <alessiob@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#38478}

Bug: webrtc:7494
Change-Id: I204133460dc119142f87695effce45e04426519f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280582
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38479}
2022-10-26 16:35:34 +00:00
6a18f06bd0 Revert "APM: rename AnalogGainStatsReporter to InputVolumeStatsReporter"
This reverts commit b5319fabeeda4ffbf58f28f4ee3d5c7c3868fb3b.

Reason for revert: audioproc_f crash 

Original change's description:
> APM: rename `AnalogGainStatsReporter` to `InputVolumeStatsReporter`
>
> Adopt the new naming convention, which replaces "analog gain" and
> "mic level" with "input volume", in the input volume stats reporter.
>
> Bug: webrtc:7494
> Change-Id: Ia24876151f51dd1dcc4e4f9db56c64d11ae3b442
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/279840
> Reviewed-by: Hanna Silen <silen@webrtc.org>
> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#38467}

Bug: webrtc:7494
Change-Id: Ia943a57c93fc77eb8450fab17961e60774e10f02
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280600
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Auto-Submit: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38478}
2022-10-26 13:29:27 +00:00
48a0c1a860 iwyu: MacOS Homebrew support
Bug: None
Change-Id: I7eba64647715b6e109e88faa177e48056eb001de
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280580
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38477}
2022-10-26 13:28:25 +00:00
35b3c63ba4 Revert "APM: log both applied and recommended input volume stats"
This reverts commit 8d7273357d92fab881561d886ce8dfe94e6e2238.

Reason for revert: revert needed to land https://webrtc-review.googlesource.com/c/src/+/280600

Original change's description:
> APM: log both applied and recommended input volume stats
>
> This CL replaces the existing `WebRTC.Audio.ApmAnalogGain.*` stats
> with `WebRTC.Audio.Apm.AppliedInputVolume.*` and adds the
> `WebRTC.Audio.Apm.RecommendedInputVolume.*` stats.
>
> Bug: webrtc:7494
> Change-Id: I70be710d20b1589fc814cbce3d3329ac1500686f
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280220
> Reviewed-by: Hanna Silen <silen@webrtc.org>
> Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#38468}

Bug: webrtc:7494
Change-Id: I4a2acfd5a983d9397932b2879cfa057deaf0eb2b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280581
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Auto-Submit: Alessio Bazzica <alessiob@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#38476}
2022-10-26 13:27:01 +00:00
137162e16e Roll chromium_revision 2a9688b355..cb1f943704 (1063242:1063624)
Change log: 2a9688b355..cb1f943704
Full diff: 2a9688b355..cb1f943704

Changed dependencies
* src/base: 25be473469..51f1692226
* src/build: 35368b635a..adcb30617a
* src/ios: d85cca59d4..00dede68db
* src/testing: e94e58aa8b..d053d375d2
* src/third_party: 238e09dbeb..a99f046710
* src/third_party/androidx: WCW0Nb-eTWmZ-0JKKiQ9oxO3tAIKly0B_mFX8It3Y9sC..PFI-NApEtsVE6mgPG_R9M2FdxQ-jMwQJ5MWdj8kiR-0C
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/cf46d1667f..2f63d551c8
* src/third_party/nasm: 9215e8e1d0..fc8e0bd892
* src/third_party/perfetto: 05595662ce..729ee8a7a6
* src/third_party/r8/d8: fGg1w2Oj2oVLbC_e3xNqEiugIZSwvIT2ji8y_br-eRQC..3UHV-FPycJ3i6x5eSFsm4kDkCEAYXif0Fk5WG595Q0IC
* src/tools: a0b8069951..a9b89dc469
DEPS diff: 2a9688b355..cb1f943704/DEPS

No update to Clang.

BUG=None

Change-Id: I3748dd3491d2d665c7956bca0f54e02aa111dc83
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280503
Bot-Commit: 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/main@{#38475}
2022-10-26 04:13:07 +00:00
e25e98b906 Improve Capturer Selection on Wayland
It doesn't really make sense to try to create the X11 capturer if we are
running under Wayland; nor does it make sense to create the PipeWire
capturer if we are going to fail to actually start a stream with it.

This change addresses both of these issues by exposing an IsSupported
method on BaseCapturerPipeWire and checking that we are not running
under Wayland before creating the X11 capturer.

Bug: chromium:1374436
Change-Id: Ieb291307376010e084824124ea8fde065545337c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/279163
Auto-Submit: Alexander Cooper <alcooper@chromium.org>
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Alexander Cooper <alcooper@chromium.org>
Cr-Commit-Position: refs/heads/main@{#38474}
2022-10-25 20:12:30 +00:00
3282747466 Roll chromium_revision 9970bfaf36..2a9688b355 (1060318:1063242)
Manually updated the flatbuffer dependency.

Change log: 9970bfaf36..2a9688b355
Full diff: 9970bfaf36..2a9688b355

Changed dependencies
* src/base: 1cbb338b1c..25be473469
* src/build: 2cf254f018..35368b635a
* src/buildtools: ca6213a9de..4c4e17b5b6
* src/buildtools/linux64: git_revision:57c352b2b03461c24b19c678c61d7aeacc6981f4..git_revision:7a6231e3e43845d9aa298bb040f11dd1953e966f
* src/buildtools/mac: git_revision:57c352b2b03461c24b19c678c61d7aeacc6981f4..git_revision:7a6231e3e43845d9aa298bb040f11dd1953e966f
* src/buildtools/third_party/libc++/trunk: e6caea47f8..0487904cc4
* src/buildtools/third_party/libc++abi/trunk: 685c4ad257..519e9ef6cc
* src/buildtools/third_party/libunwind/trunk: 1111799723..1f633d41a0
* src/buildtools/win: git_revision:57c352b2b03461c24b19c678c61d7aeacc6981f4..git_revision:7a6231e3e43845d9aa298bb040f11dd1953e966f
* src/ios: 35f415a5a1..d85cca59d4
* src/testing: 63ba9bd34f..e94e58aa8b
* src/third_party: 5f6d1ab1d7..238e09dbeb
* src/third_party/android_build_tools/bundletool: IEZQhHFQzO9Ci1QxWZmssKqGmt2r_nCDMKr8t4cKY34C..JUxLsQLBkNG0ylmbHz6FGBtYyK1PNDZ04pMCii90Bd4C
* src/third_party/android_build_tools/manifest_merger: bfhl7B4_T6dP72d1sF-6RSeAQqwlw1qUx-FDEFh3sKIC..xd-wXGBtd-G1FJXc_owo3j_wxWs4YxgOfQ-tKWHwN5AC
* src/third_party/androidx: ZwzuDdR1SOsOlDfzEXAOd5iZO93YIoOD9Xyvmszyb00C..WCW0Nb-eTWmZ-0JKKiQ9oxO3tAIKly0B_mFX8It3Y9sC
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/98d333e8ae..cf46d1667f
* src/third_party/depot_tools: c950858a72..1f51102073
* src/third_party/freetype/src: 8493877e78..dea2e6358b
* src/third_party/libaom/source/libaom: https://aomedia.googlesource.com/aom.git/+log/7f32eb35ff..08ea764546
* src/third_party/libvpx/source/libvpx: 9d6d0624d7..5245f6e9cb
* src/third_party/libyuv: 00950840d1..fe9ced6e3c
* src/third_party/nasm: 5fd9246276..9215e8e1d0
* src/third_party/perfetto: a77a3622d2..05595662ce
* src/third_party/r8/d8: 9PJITrOEIl2U8mvr44d5e9XjOdvzRPuF774VA3jWOsYC..fGg1w2Oj2oVLbC_e3xNqEiugIZSwvIT2ji8y_br-eRQC
* src/tools: 72185140dd..a0b8069951
* src/tools/luci-go: git_revision:9f65ffe719f73af390727d369b342c22fa37ea54..git_revision:50ab33853a8b220162f851dcb74a1519e106b3df
* src/tools/luci-go: git_revision:9f65ffe719f73af390727d369b342c22fa37ea54..git_revision:50ab33853a8b220162f851dcb74a1519e106b3df
DEPS diff: 9970bfaf36..2a9688b355/DEPS

Clang version changed llvmorg-16-init-7184-gdeb82d4a:llvmorg-16-init-8189-g97196a2d
Details: 9970bfaf36..2a9688b355/tools/clang/scripts/update.py

BUG=None

Change-Id: If4aefeae31bbee1dcc320a049f55672cf27e74a3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280381
Reviewed-by: Christoffer Jansson <jansson@google.com>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38473}
2022-10-25 19:49:15 +00:00
d237c2bd2d add RTCRtpSender.generateKeyFrame
defined in
  https://w3c.github.io/webrtc-encoded-transform/#rtcrtpsender-extension

Note: this does not implement the "rid(s)" parameter which will be done in a future CL.

VP8 still synchronizes keyframes on all layers even when asked for ones on individual layers while H264 (when implemented as three different encoders in SimulcastEncoderAdapter) can actually utilize this.

This does not change the behavior when receiving a RTCP PLI for a particular layer.

BUG=chromium:1354101

Change-Id: Ic8b14d155242e32c9aeafa55fe6652f346ac76b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/274169
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#38472}
2022-10-25 18:37:35 +00:00
4fdf8cc67b Suppress -Wdeprecated-volatile in rtc_base/system_time.cc
Bug: webrtc:14601
Change-Id: Ifb6e0cb372231920108142b5efc076039943581b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280442
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Johannes Kron <kron@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38471}
2022-10-25 17:38:01 +00:00
96002fa8da [PCLF] Include video resolution into video dump file name
Bug: b/240540204
Change-Id: Idad6a5c67c2dcedb07cfa915ac986590c1e29275
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280383
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Andrey Logvin <landrey@google.com>
Cr-Commit-Position: refs/heads/main@{#38470}
2022-10-25 17:21:47 +00:00
d89dff767c AGC2: prepare to move speech level estimator into GainController2
- build target isolated
- `AdaptiveModeLevelEstimator` renamed to `SpeechLevelEstimator`

Bug: webrtc:7494
Change-Id: If16caec2269b2ed1b2ee27c3687a8f8875f55c8c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280441
Reviewed-by: Hanna Silen <silen@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38469}
2022-10-25 16:15:07 +00:00
8d7273357d APM: log both applied and recommended input volume stats
This CL replaces the existing `WebRTC.Audio.ApmAnalogGain.*` stats
with `WebRTC.Audio.Apm.AppliedInputVolume.*` and adds the
`WebRTC.Audio.Apm.RecommendedInputVolume.*` stats.

Bug: webrtc:7494
Change-Id: I70be710d20b1589fc814cbce3d3329ac1500686f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280220
Reviewed-by: Hanna Silen <silen@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38468}
2022-10-25 14:02:22 +00:00
b5319fabee APM: rename AnalogGainStatsReporter to InputVolumeStatsReporter
Adopt the new naming convention, which replaces "analog gain" and
"mic level" with "input volume", in the input volume stats reporter.

Bug: webrtc:7494
Change-Id: Ia24876151f51dd1dcc4e4f9db56c64d11ae3b442
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/279840
Reviewed-by: Hanna Silen <silen@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38467}
2022-10-25 13:57:55 +00:00
28da5462be [PCLF] Fix ExampleVideoQualityAnalyzer to not use VideoFrame::kNotSetId as frame id
Bug: b/240540204
Change-Id: I7d529f22c93e529a26787dd4c0b5448ad27bb644
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280382
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Auto-Submit: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@google.com>
Reviewed-by: Andrey Logvin <landrey@google.com>
Cr-Commit-Position: refs/heads/main@{#38466}
2022-10-25 12:21:52 +00:00
0137e730b7 Fix errors in new SessionDescriptionInterface mock
and really compile it with CompileAllHeaders.

Bug: webrtc:14594
Change-Id: I51b0364cbede0e1d614ee708fbc01580bda68d3d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280223
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Auto-Submit: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38465}
2022-10-25 09:27:40 +00:00
d226c5731d APM: move AnalogGainStatsReporter to AGC2
Bug: webrtc:7494
Change-Id: Ifb924e6eda47dd96a591a0b55b1e7fcfdbbbbe18
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280222
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Hanna Silen <silen@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38464}
2022-10-25 08:35:02 +00:00
99c4c73dbf Add FuzzyMatchSdpVideoFormat convenience function for VideoEncoderFactoryTemplate.
Bug: webrtc:13573
Change-Id: I6813f2a2524271be7862b700da4831575ec6e206
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/279701
Commit-Queue: Xavier Lepaul‎ <xalep@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38463}
2022-10-25 08:30:25 +00:00
4349137885 [infra] Remove reclient shadow builders for CI
Keeping shadow builders may cause worker pool saturation.

Bug: b:239908030
Change-Id: I5c0272c7a1772df143290cbaa2083c93a4c96c52
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280320
Auto-Submit: Junji Watanabe <jwata@google.com>
Reviewed-by: Christoffer Jansson <jansson@webrtc.org>
Commit-Queue: Christoffer Jansson <jansson@webrtc.org>
Reviewed-by: Christoffer Jansson <jansson@google.com>
Reviewed-by: Takuto Ikuta <tikuta@google.com>
Cr-Commit-Position: refs/heads/main@{#38462}
2022-10-25 07:56:06 +00:00
e27f33b2ee DEPS: remove checkout_reclient
chromium removed the config in https://crrev.com/c/3755181.

Bug: b/255447284
Change-Id: If07afe9942ada9f65ce9ae3976c4174f477e0b8a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280360
Reviewed-by: Junji Watanabe <jwata@google.com>
Auto-Submit: Takuto Ikuta <tikuta@google.com>
Commit-Queue: Junji Watanabe <jwata@google.com>
Commit-Queue: Takuto Ikuta <tikuta@google.com>
Cr-Commit-Position: refs/heads/main@{#38461}
2022-10-25 07:33:32 +00:00
e457e43836 Fix bug where RTCTransportStats.dtlsCipher was missing when using OpenSSL
A bug in the id being searched for inside OpenSSLStreamAdapter::SslCipherSuiteToName prevented the lookup from ever succeeding.

This resulted in this stat being unavailable when calling PeerConnection::GetStats(). To fix the problem, look for (0x03000000L | cipher_suite) which matches what the BoringSSL codepath is doing.

Bug: webrtc:14596
Change-Id: Ic36d77dbc4c2378fbde1e2f21a9f5bd735b36741
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280100
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38460}
2022-10-24 20:51:33 +00:00
ea59abe44e Speed up congestion controller feedback fuzzer
When packet arrives with large gap majority of the time could be spend
in finding next received packet. Embedding such search into PacketArrivalMap
makes it faster

Bug: chromium:1373414
Change-Id: I2e0be0f2fc4ea96af081531d575a17c70b72b25b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/279881
Reviewed-by: Emil Lundmark <lndmrk@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38459}
2022-10-24 13:43:16 +00:00
98fe985480 Add MockSessionDescriptionInterface
This is needed to get rid of a mock in Chrome.

Bug: webrtc:14594
Change-Id: I27df2a1466e6a2dea87a211f803b3f2c7aa57478
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280041
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38458}
2022-10-24 12:21:31 +00:00
2fc37573b9 Add DISALLOW_WAIT(), a regression catching utility.
Bug: none
Change-Id: I94def80a7eb815f74d1be691d21b5f3661771a71
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/279821
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Evan Shrubsole <eshr@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38457}
2022-10-24 11:10:26 +00:00
4a1c9ecc5c Cleanup old Android check for pre 4.4 versions
The minSdk is 21.

Bug: webrtc:13780
Change-Id: If21ffab16b21d957c1d1a9b6912d09cd2bc309ef
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/279902
Commit-Queue: Xavier Lepaul‎ <xalep@webrtc.org>
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38456}
2022-10-24 10:50:29 +00:00
335a4e4e1f GainController2: Remove the unused method Initialize
Bug: webrtc:7494
Change-Id: I46a808116abefc6d7d2dd3b954fc1fba7d6f8a90
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280040
Commit-Queue: Hanna Silen <silen@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38455}
2022-10-24 09:49:26 +00:00
b8a4daa31c Add support for reducing number of spatial layers via scalability mode.
Bug: webrtc:13960
Change-Id: Icf31d2e327e363dac24245cb5c9fc14cbaa9b3b4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/275942
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38454}
2022-10-24 09:40:39 +00:00
1c8103d4db Add FieldTrialsRegistry that verifies looked up field trials
This new class implements the existing FieldTrialsView interface,
extending it with the verification functionality. For now, the
verification will only be performed if the rtc_strict_field_trials GN
arg is set.

Most classes extending FieldTrialsView today have been converted to
extend from FieldTrialsRegistry instead to automatically perform
verification.

Bug: webrtc:14154
Change-Id: I4819724cd66a04507e62fcc2bb1019187b6ba8c7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/276270
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Emil Lundmark <lndmrk@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38453}
2022-10-24 09:12:30 +00:00
9707f579ae delay estrimator: Enable looking for early reverberation
Enable by default the look for the first echo.

Bug: webrtc:14205
Change-Id: Iae904679c1432f3a0766263907cf376903685b97
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/278043
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Commit-Queue: Lionel Koenig <lionelk@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38452}
2022-10-24 08:35:52 +00:00
b3b140d94b Update WebRTC code version (2022-10-24T04:02:03).
Bug: None
Change-Id: I879baeca07ad65a285f7633487097e4c6e8fbb33
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/280140
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Bot-Commit: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#38451}
2022-10-24 08:14:57 +00:00
cc98238f6d PipeWire capturer: improvements to SharedScreenCastStream test
Remove useless comments and properly test frame values. Also rename the
FakeScreenCastStream to TestScreenCastStreamProvider.

Bug: webrtc:13429
Change-Id: I9b1943f0903101a1d9228cded541d3766879d84f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/279740
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Jan Grulich <grulja@gmail.com>
Cr-Commit-Position: refs/heads/main@{#38450}
2022-10-22 10:31:18 +00:00
f5db32f02a Wayland screencast: use damage regions metadata from PW buffers
We already communicated SPA_META_VideoDamage before, but we never used
these metadata. This change checks whether SPA_META_VideoDamage metadata
are available and construct a damage rect combined from all sent damage
regions.

Bug: webrtc:13429
Change-Id: I326109b4bacf51855904e53345c671640d670323
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/278820
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Jan Grulich <grulja@gmail.com>
Cr-Commit-Position: refs/heads/main@{#38449}
2022-10-20 19:02:26 +00:00
640e92684a Use proper export macro in rtc_stats.cc
R=hbos@webrtc.org

Bug: webrtc:14546
Change-Id: Ida2de79255ab22b6d779c49dc0a0ba7f17b679c5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/279920
Commit-Queue: Evan Shrubsole <eshr@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38448}
2022-10-20 12:27:57 +00:00
6bf20cc76a Verify field trials looked up through field_trial::FindFullName
For now, the run-time check will only be enabled if the
rtc_strict_field_trials GN arg is set.

In order to allow testing with imaginary field trial keys, two test
helpers have been added. It's a bit awkward to test these since the
field trial string is already global, hence the helpers are also
modifying global state. Tests must make sure this global state is reset
between runs. Things won't be an issue anymore when [1] has removed the
global string.

[1] https://crbug.com/webrtc/10335

Bug: webrtc:14154
Change-Id: Ida44cc817079d7177325e2228cf1f1d242b799e2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/276269
Commit-Queue: Emil Lundmark <lndmrk@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38447}
2022-10-20 10:46:01 +00:00