41819 Commits

Author SHA1 Message Date
Tommi
d6ef33e59b Remove PushResampler<T>::InitializeIfNeeded
This switches from accepting a sample rate and convert to channel
size over to accepting the channel size.

Instead of InitializeIfNeeded:

* Offer a way to explicitly initialize PushResampler via the ctor
  (needed for VoiceActivityDetectorWrapper)
* Implicitly check for the right configuration from within Resample().
  (All calls to Resample() were preceded by a call to Initialize)

As part of this, refactor VoiceActivityDetectorWrapper (VADW):
* VADW is now initialized in the constructor and more const.
* Remove VADW::Initialize() and instead reconstruct VADW if needed.

Add constants for max sample rate and num channels to audio_util.h
In many cases the numbers for these values are embedded in the code
which has led to some inconsistency.

Bug: chromium:335805780
Change-Id: Iead0d52eb1b261a8d64e93f51401147c8fba32f0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/353360
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42587}
2024-07-04 10:33:21 +00:00
webrtc-version-updater
5e49544a76 Update WebRTC code version (2024-07-04T04:07:44).
Bug: None
Change-Id: I6ad9731a35db3b7c72ccac35372194085be8b72c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356360
Bot-Commit: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#42586}
2024-07-04 05:59:06 +00:00
Jeremy Leconte
10bd257dbe Add constraints to try bucket.
Trying to fix the error:
bad request: build: constraints for webrtc:try not found

Change-Id: Icf96d5082ce09a60d079b91117a3786ddb97269c
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356301
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#42585}
2024-07-03 14:30:35 +00:00
Jeremy Leconte
0471a1963f Fix VP9_Simulcast_SwitchToLegacySvc flakiness.
https://luci-analysis.appspot.com/p/webrtc/clusters/testname-v4/5f33a918de6eb10b2b14ec5f2bd22d3a?tab=recent-failures

Change-Id: I7c8e3b81c25a97e13b328065567712c85942e32d
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356320
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42584}
2024-07-03 13:42:49 +00:00
Jeremy Leconte
7218d0f304 Add buildbucket.creator role for led users.
Tried 'led' today and it resulted in the below error:
rpc error: code = PermissionDenied desc = user does not have permission "buildbucket.builds.create"

Change-Id: I361859b6f6ee58a67ac08e615cb88761fb39d67e
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356300
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42583}
2024-07-03 12:59:25 +00:00
Tommi
55c3600781 Remove <ostream> dependencies
Some dependencies still exist but are a bit more complex to remove.
This CL removes either unused or easily replaced with ToString()
instances of ostream usage. In one case, moving the operator<<
implementation to the one test file that requires it.

Bug: webrtc:8982
Change-Id: Ia5c840b12a42893494af401317a3daf2fe50ba9b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356240
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42582}
2024-07-03 12:27:55 +00:00
Tommi
32c3398e1a Update RemixAndResample to use audio views
Also adding more checks around parameter valuesm since the
`sample_rate_hz` argument is technically not needed, but will be
removed in a follow-up CL.

Bug: chromium:335805780
Change-Id: Ia7e50658f8a686ab71980f9c59cce5f097b0af40
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/353340
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42581}
2024-07-03 09:52:24 +00:00
Ilya Nikolaevskiy
5d56b7cdf0 SimulcastEncoderAdapter: ensure registered callback isn't lost
Currently, if the single-encoder mode fails to initialize, the
callback is cleared on the encoder with Release() call.

Below, the encoder_context for the first stream will be reused but
then we only intercept the callback for the stream_idx>0.

Therefore if RegisterEncodeCompleteCallback() is called before the InitEncode(), the first stream will end up with nullptr callback.

To ensure this doesn't happen, restore the callback on the reusable encoder.

Bug: none
Change-Id: I1c830f3bf71f64807d5cc1a3000b73834011bde4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356180
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42580}
2024-07-03 08:38:04 +00:00
Ilya Nikolaevskiy
881c1a73ad Revert "Reland "Rewrite simulcast config to equivalent SVC for vp9 simulcast""
This reverts commit aab34560cf8a23b61d04dcb5410ddec49715cdcb.

Reason for revert: Breaks downstream projects again.

Original change's description:
> Reland "Rewrite simulcast config to equivalent SVC for vp9 simulcast"
>
> This reverts commit b58937316b42a04f8ed2c569d80d813bbc44b3c5.
>
> Reason for revert: Reland after downstream project fix.
>
> Original change's description:
> > Revert "Rewrite simulcast config to equivalent SVC for vp9 simulcast"
> >
> > This reverts commit 86ff48adaea08fd4e7044595e1c25a22fcceac34.
> >
> > Reason for revert: Speculative revert due to failing downstream tests
> >
> > Original change's description:
> > > Rewrite simulcast config to equivalent SVC for vp9 simulcast
> > >
> > > This allows to utilize libvpx optimizations considerably improving performance.
> > > The change happens inside libvpx_vp9_encoder and is invisible to other parts of webrtc.
> > >
> > > This CL includes unit tests, an E2E test already exists: StandardPath/PeerConnectionEncodingsIntegrationParameterizedTest.Simulcast/VP9 in peerconnection_unittests.
> > >
> > > Bug: webrtc:347737882
> > > Change-Id: Ic48316ad597700ed07e594d592413cf84b6b20d4
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355003
> > > Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
> > > Reviewed-by: Erik Språng <sprang@webrtc.org>
> > > Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> > > Cr-Commit-Position: refs/heads/main@{#42554}
> >
> > Bug: webrtc:347737882
> > Change-Id: Ib84c9c0e20763348abfae838f2fb1aff31581a55
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355943
> > Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> > Owners-Override: Jeremy Leconte <jleconte@google.com>
> > Reviewed-by: Jeremy Leconte <jleconte@google.com>
> > Commit-Queue: Jeremy Leconte <jleconte@google.com>
> > Cr-Commit-Position: refs/heads/main@{#42564}
>
> Bug: webrtc:347737882
> Change-Id: I020d51892982a6e776bb169584c27f7c1360d521
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356142
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#42574}

Bug: webrtc:347737882
Change-Id: Id3472578159cfbe9cffeb812f1cb2c96e722298f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356260
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42579}
2024-07-03 08:17:24 +00:00
Per K
666ef50459 Plot reordered packets since last feedback.
Bug: None
Change-Id: I528227980a9e2a88593e891f702ad44ee5b9d7fa
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356041
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42578}
2024-07-03 07:02:39 +00:00
webrtc-version-updater
257a7b6aea Update WebRTC code version (2024-07-03T04:03:49).
Bug: None
Change-Id: I4874a0da23da584e419ac9ee5b625156c8e4dfa8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356220
Bot-Commit: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#42577}
2024-07-03 06:06:07 +00:00
Jeremy Leconte
fbf754b581 Add new bot 'iwyu_verifier'.
Change-Id: I26a5022d1ffa1f6443c686b90d4a6322a27f81e2
Bug: b/236227627
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356020
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42576}
2024-07-02 19:03:18 +00:00
Tommi
51ad7c1277 Update FrameCombiner et al to use DeinterleavedView
* FrameCombiner is simpler. No additional channel pointers for buffers.
* Improve consistency in using views in downstream classes.
* Deprecate older methods (some have upstream dependencies).
* Use samples per channel instead of sample rate where the former is
  really what's needed.

Bug: chromium:335805780
Change-Id: I0dde8ed7a5a187bbddd18d3b6c649aa0865e6d4a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/352582
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42575}
2024-07-02 15:58:20 +00:00
Ilya Nikolaevskiy
aab34560cf Reland "Rewrite simulcast config to equivalent SVC for vp9 simulcast"
This reverts commit b58937316b42a04f8ed2c569d80d813bbc44b3c5.

Reason for revert: Reland after downstream project fix.

Original change's description:
> Revert "Rewrite simulcast config to equivalent SVC for vp9 simulcast"
>
> This reverts commit 86ff48adaea08fd4e7044595e1c25a22fcceac34.
>
> Reason for revert: Speculative revert due to failing downstream tests
>
> Original change's description:
> > Rewrite simulcast config to equivalent SVC for vp9 simulcast
> >
> > This allows to utilize libvpx optimizations considerably improving performance.
> > The change happens inside libvpx_vp9_encoder and is invisible to other parts of webrtc.
> >
> > This CL includes unit tests, an E2E test already exists: StandardPath/PeerConnectionEncodingsIntegrationParameterizedTest.Simulcast/VP9 in peerconnection_unittests.
> >
> > Bug: webrtc:347737882
> > Change-Id: Ic48316ad597700ed07e594d592413cf84b6b20d4
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355003
> > Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
> > Reviewed-by: Erik Språng <sprang@webrtc.org>
> > Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#42554}
>
> Bug: webrtc:347737882
> Change-Id: Ib84c9c0e20763348abfae838f2fb1aff31581a55
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355943
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> Owners-Override: Jeremy Leconte <jleconte@google.com>
> Reviewed-by: Jeremy Leconte <jleconte@google.com>
> Commit-Queue: Jeremy Leconte <jleconte@google.com>
> Cr-Commit-Position: refs/heads/main@{#42564}

Bug: webrtc:347737882
Change-Id: I020d51892982a6e776bb169584c27f7c1360d521
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356142
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42574}
2024-07-02 14:42:35 +00:00
Erik Språng
fe4c1dd6dc Fix logic reading spatial/temporal id in VideoStreamEncoder.
The temporal id must be read from `EncodedImage` rather than codec
specifics for AV1. Furthermore, in some configs the spatial id of
`EncodedImage` is populated and set to 0 while the simulcast id can
also be simultaneously populated and set to values, including non-zero.
To solve this, just take the max of the two.

Bug: b/349561566
Change-Id: I46c61b7f0fff7a7ab8d7262c3a8d413f49b3286a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355904
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42573}
2024-07-02 14:15:52 +00:00
Åsa Persson
445d403eca Use RtpEncodingParameters min bitrate on lowest spatial layer if set.
Bug: b/299588022
Change-Id: I32dcf6763dbea184faf40cf743a9370073761762
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355864
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42572}
2024-07-02 14:01:59 +00:00
Jonas Oreland
a58047d4e9 Add new constructor for TestUDPPort
The new constructor exposes an already existing constructor,
and is used to create a (test) UDPPort
with a socket...so that one does not (really) need a
socket factory.

Bug: b/339018639
Change-Id: Ib591fe6ae61519fe29cdea819192694448b071e0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356141
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Jonas Oreland <jonaso@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42571}
2024-07-02 13:20:51 +00:00
Tommi
f101f3f803 Remove sstream code from socket_address
Bug: webrtc:8982
Change-Id: I85f1678aa02a51ddad083fb299577cfa5d364df8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355905
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Auto-Submit: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42570}
2024-07-02 11:36:00 +00:00
Tommi
7e59d264f1 Remove unused istream code in test_utils.
Bug: webrtc:8982
Change-Id: I52cf9778581190399de8e2068e4a1cd03c97fb3f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356140
Auto-Submit: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42569}
2024-07-02 10:22:12 +00:00
webrtc-version-updater
3ae2bfa262 Update WebRTC code version (2024-07-02T04:04:31).
Bug: None
Change-Id: I8f45480d64a3d125daf52cc6f27f2950a2dfc4d2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356120
Bot-Commit: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#42568}
2024-07-02 06:18:26 +00:00
Johannes Kron
e0287f2797 Add default values and field trials to QualityConvergenceMonitor
Add default values and a static Create() function that determines
the parameters to use based on the specified codec and potential
field trial overrides.

Bug: chromium:328598314
Change-Id: I7a9331a1fd0ed4bd258788760592ea84e535e43b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355903
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Markus Handell <handellm@google.com>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42567}
2024-07-01 22:37:46 +00:00
Johannes Kron
6bbbc08747 Implement QualityConvergenceMonitor
The quality convergence monitor will be used for screenshare streams
to determine if encoded video frames have reached the target quality.

This is a generalization of the static threshold that is currently
used for VP8 in VideoStreamEncoder.

Internal design document: go/qp-convergence-detection

Bug: chromium:328598314
Change-Id: I13e32ee6efb54cbdb4e8a814c525087af8cd2759
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355902
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42566}
2024-07-01 22:10:53 +00:00
webrtc-version-updater
84af278666 Update WebRTC code version (2024-07-01T04:06:11).
Bug: None
Change-Id: I775c9bb700981055b087581ee194157d35515893
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356001
Bot-Commit: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com <webrtc-version-updater@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#42565}
2024-07-01 05:22:23 +00:00
Björn Terelius
b58937316b Revert "Rewrite simulcast config to equivalent SVC for vp9 simulcast"
This reverts commit 86ff48adaea08fd4e7044595e1c25a22fcceac34.

Reason for revert: Speculative revert due to failing downstream tests

Original change's description:
> Rewrite simulcast config to equivalent SVC for vp9 simulcast
>
> This allows to utilize libvpx optimizations considerably improving performance.
> The change happens inside libvpx_vp9_encoder and is invisible to other parts of webrtc.
>
> This CL includes unit tests, an E2E test already exists: StandardPath/PeerConnectionEncodingsIntegrationParameterizedTest.Simulcast/VP9 in peerconnection_unittests.
>
> Bug: webrtc:347737882
> Change-Id: Ic48316ad597700ed07e594d592413cf84b6b20d4
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355003
> Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#42554}

Bug: webrtc:347737882
Change-Id: Ib84c9c0e20763348abfae838f2fb1aff31581a55
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355943
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Owners-Override: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#42564}
2024-06-29 17:47:18 +00:00
Tony Herre
93788b68c6 Make platform_thread.cc build under emscripten without pthread support
Otherwise targets which don't need threads but transitively include this
fail to build due to missing thread priority symbols as described in the
bug.

Bug: webrtc:349961287
Change-Id: I33098a150387b8d20ab9344f49d7c7cb19be2db4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355901
Auto-Submit: Tony Herre <herre@google.com>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42563}
2024-06-29 16:12:11 +00:00
Per K
fb2c7bc8bd Remember lost packets between RTCP feedback reports
The idea is to reduce the risk of calculating a packet as lost if a
packet is reordered between two feedback reports.
It works as long as the recevied feedback does not complete an
observation.

Bug: webrtc:42222865 b/349765923
Change-Id: Iaf1595e624f546951baf3998d161f4cd1d5d491b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355942
Reviewed-by: Diep Bui <diepbp@google.com>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42562}
2024-06-28 17:27:55 +00:00
lauren n. liberda
4157f3def0 stdc++: remove unneeded absl::optional wrapping
std::optional<T>::emplace() without an initializer is broken on clang++
with gnu libstdc++. this workarounds the bug by removing the
absl::optional wrapping, which is actually pointless.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101227

Bug: chromium:41455655
Change-Id: I05354e57cc4cdda3fa6d3cd23f46462b69cc3bee
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355900
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Diep Bui <diepbp@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42561}
2024-06-28 16:35:18 +00:00
Jeremy Leconte
f5ccb396b1 Finish the roll of third_party.
With this commit we'll have a full reland of https://webrtc-review.googlesource.com/c/src/+/355520.
First time the CL landed it triggered a jni_zero dependency cycle which seems to be fixed somehow...

This commit roll these changes:
a90b1f4c5a..91945cadc2

Change-Id: Iff6fd7ab808a240c4172373f1baa6d9388823c91
No-Try: true
Bug: None
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355940
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42560}
2024-06-28 11:45:07 +00:00
Johannes Kron
216cce5f49 Add minimum_qp to VideoEncoder::EncoderInfo
The minimum QP field will be used to signal what the QP value will be
once the encoder reach its target video quality. This will be used
in the generalized QP convergence detection.

Bug: chromium:328598314
Change-Id: I82299cd921e3c091e651218d1e3f337875176567
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355701
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Markus Handell <handellm@google.com>
Cr-Commit-Position: refs/heads/main@{#42559}
2024-06-28 10:48:22 +00:00
Emil Lundmark
2360208f7d Generate compilation database by default
This will generate a JSON compilation database for all build targets by
default. This is useful for LSP servers and other tools for properly
interacting with the build system. Previously, users have been able to
this manually by appending a flag to gn gen.

Bug: None
Change-Id: I9cdf501b5c392314eae53010ef2d9928769809a8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355941
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Emil Lundmark <lndmrk@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42558}
2024-06-28 08:37:45 +00:00
webrtc-version-updater
c7bac48b60 Update WebRTC code version (2024-06-28T04:05:47).
Bug: None
Change-Id: I78e975be85a181bb9c6d26c35dd478747a365302
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355920
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@{#42557}
2024-06-28 06:15:56 +00:00
Sergey Silkin
e19896abec Enable VP9 flexible mode if it is not disabled by the kill-switch
Forgot negation in https://webrtc-review.googlesource.com/c/src/+/355700

Bug: webrtc:329396373
Change-Id: I6217b5b5cdb11b182405ae7b3d3d3c1fa5036bc7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355862
Auto-Submit: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42556}
2024-06-27 16:24:14 +00:00
Evan Shrubsole
479e066495 Fix spatial layers to 1 when doing VP9 simulcast encoding
Libvpx works without this, so the existing tests pass. However, other
encoder implementations (like rtc_video_encoder in Chrome) look at
different fields and get confused about the configuration.

Test: Integration tests with Chrome and windows hardware encoders.
Bug: webrtc:348342168
Change-Id: Id0d96cff34eb34c7e019a24255623f3aeeca5772
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355500
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Evan Shrubsole <eshr@google.com>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42555}
2024-06-27 16:23:11 +00:00
Ilya Nikolaevskiy
86ff48adae Rewrite simulcast config to equivalent SVC for vp9 simulcast
This allows to utilize libvpx optimizations considerably improving performance.
The change happens inside libvpx_vp9_encoder and is invisible to other parts of webrtc.

This CL includes unit tests, an E2E test already exists: StandardPath/PeerConnectionEncodingsIntegrationParameterizedTest.Simulcast/VP9 in peerconnection_unittests.

Bug: webrtc:347737882
Change-Id: Ic48316ad597700ed07e594d592413cf84b6b20d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355003
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42554}
2024-06-27 14:27:35 +00:00
Åsa Persson
975334439a Prefer encoding min bitrate if configured when applying bitrate limits.
Bug: none
Change-Id: Ifc329bc2ca28683652ff081332dc5d7234d6e659
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355840
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42553}
2024-06-27 14:26:20 +00:00
Jeremy Leconte
c429517927 Roll chromium_revision 536609c347..ba1ae79f58 (1316213:1319128)
Manual change:
- changed ninja package to 'infra/3pp/build_support/ninja-1_11_1/${{platform}}'
- limit third_party roll to e9fa8077c522c8591b96c77b0b3feaba51cec643 so that https://chromium-review.googlesource.com/c/chromium/src/+/5636706 is not included.

Change log: 536609c347..ba1ae79f58
Full diff: 536609c347..ba1ae79f58

Changed dependencies
* fuchsia_version: version:21.20240613.1.1..version:21.20240620.2.1
* ninja_version: version:2@1.11.1.chromium.6..version:2@1.11.1.chromium.2
* reclient_version: re_client_version:0.143.0.518e369-gomaip..re_client_version:0.148.0.41b09b51-gomaip
* src/base: 21aa1c623a..aa6dbe6d6a
* src/build: 574613cf34..5bce81deee
* src/buildtools: 8acbed5185..94d7b86a83
* src/buildtools/reclient: re_client_version:0.143.0.518e369-gomaip..re_client_version:0.148.0.41b09b51-gomaip
* src/ios: c5094fae2f..9e33110a5d
* src/testing: ca3cf42d0a..a1b47952f3
* src/third_party: 361b05ad7c..4513afab67
* src/third_party/androidx: Z-16gFTbhA-coeMbJVUhkfglE569L1q8iVWgtwIs9oMC..-zomVY2T8V3NRjAUbZNAZpFp8dAPuNdu3oQsnmhhIHEC
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/9cac8a6b38..f01108e476
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/1a0040059f..022cd349fe
* src/third_party/depot_tools: 66df2a3ec7..f1c7c96958
* src/third_party/ffmpeg: bc1ee906ce..d941d9677b
* src/third_party/freetype/src: d41a855aab..73720c7c99
* src/third_party/icu: 43953f57b0..163e29159e
* src/third_party/kotlinc/current: 0jpbSygC1gCOFyv-hsyNVfvxPLhDSXnTCSnxHY_mjKoC..9KgLQsrBWX4kePu9T7eDB1JknSYIPKmmumTEE70lyHYC
* src/third_party/libaom/source/libaom: https://aomedia.googlesource.com/aom.git/+log/49c02efb61..afedaf9da5
* src/third_party/libc++/src: 6caebae1eb..09b99fd8ab
* src/third_party/libc++abi/src: 472d9aad97..bac941ca44
* src/third_party/libunwind/src: c8f1d81998..dcc1ffafb5
* src/third_party/libvpx/source/libvpx: a2508b5711..253d6365e3
* src/third_party/ninja: version:2@1.11.1.chromium.6..version:2@1.11.1.chromium.2
* src/third_party/perfetto: 1990573f6d..f9098afffa
* src/third_party/r8: BbsWCeVMT641FkMRNj4fbXc-wfImc7dl45HwKXWk0hsC..M8rc1oybTkWXWpoImSQ8gAwv6mdEyvAPnQNs6Dus_28C
* src/third_party/re2/src: 4a8cee3dd3..6144b62bec
* src/third_party/turbine: s6-zuFNzLDZOl_FmPkk2_LENOqUKjkYmpqR9l0SDo94C..xWEBZuFKl1Dvw_zOpabeMkGVYlEllIxK06D-RoC6wUsC
* src/tools: 4d74770ca4..a8fe86b922
DEPS diff: 536609c347..ba1ae79f58/DEPS

Clang version changed llvmorg-19-init-10646-g084e2b53:llvmorg-19-init-14561-gecea8371
Details: 536609c347..ba1ae79f58/tools/clang/scripts/update.py

BUG=None

Change-Id: I0d138717c45c086f4badecb32f69c103838654cd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355843
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42552}
2024-06-27 14:07:03 +00:00
Johannes Kron
529707576a Set is_steady_state_refresh_frame in FrameEncodeMetadataWriter
Set is_steady_state_refresh_frame true if the update rectangle of the
corresponding VideoFrame is empty. Set it to false otherwise.

Rename FillTimingInfo to FillMetadataAndTimingInfo.

Bug: chromium:328598314
Change-Id: I7a3e89b180432473b087e849fce636ce1b329637
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355780
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42551}
2024-06-27 11:58:13 +00:00
Johannes Kron
7235dd0e2b Add is_steady_state_refresh_frame_ to EncodedImage
The field is_steady_state_refresh_frame_ can be used to determine
if the encoded video frame is a repeated frame that should be considered
for QP convergence detection.

Bug: chromium:328598314
Change-Id: Iffba0f9f70af8b41b9bde25cf40b08b77dad8021
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355702
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42550}
2024-06-27 11:57:11 +00:00
Zhaoliang Ma
769ef20309 [rct_tools/video_encoder] Support yuv input and PSNR/Bitrate validation.
As mentioned, this CL adds the yuv input file support, also checks the
PSNR and bitrate validation in video encoder tool.

the output example is like:
(video_encoder.cc:487): VideoBitrateAllocation [ [272000] ]
(ivf_file_writer.cc:165): Created IVF file for codec data of type AV1 at resolution 640 x 360, using 90kHz clock resolution.
(video_encoder.cc:266): PSNRPassed Average PSNR: 35.6536 Average bitrate: 273960 Bitrate deviation: 0.720588 %

Bug: None
Change-Id: Idaf2545fc272ec636165104784eae79aaee731f9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355360
Commit-Queue: Zhaoliang Ma <zhaoliang.ma@intel.com>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42549}
2024-06-27 10:50:16 +00:00
Jan Grulich
e6ad337d63 PipeWire capture: hide cursor when it goes off screen or is not visible
Set cursor position to (-1,-1) to indicate it's not valid when it goes
off the screen or it gets hidden by the compositor. Compositors indicate
invalid or hidden cursor by unsetting the cursor id in cursor metadata
and using spa_meta_cursor_is_valid() will tell us the needed information
for this.

Bug: chromium:346608851
Change-Id: I71b3222ca161b7fd8e964f4f4e12b9983179beba
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355080
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Jan Grulich <grulja@gmail.com>
Cr-Commit-Position: refs/heads/main@{#42548}
2024-06-27 08:57:19 +00:00
webrtc-version-updater
2d6c397795 Update WebRTC code version (2024-06-27T04:06:16).
Bug: None
Change-Id: I8ed8fdbd4b53facc52566d9ea501c588aa84598b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355820
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@{#42547}
2024-06-27 05:57:30 +00:00
Olov Brändström
c2c6442ad5 Add RTC_EXPORT to TimeUTCMicros (2nd try)
In https://webrtc-review.googlesource.com/c/src/+/355181 I supposed to add RTC_EXPORT to the TimeUTCMicros function. However in the code I added it to TimeUTCMillis(). I hadn't realized there where two similar functions, so I did a poor error check.

I think it make sense to have RTC_EXPORT on both of them, since they are similar. So I opted to not revert the change in the previous faulty CL.

Bug: chromium:333359951
Change-Id: Icb3d3adeebd4fbf56244986a9e801bee84ff04df
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355760
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42546}
2024-06-26 16:53:17 +00:00
Danil Chapovalov
20b8e33a3f Add AudioEncoderOpus constructors that use field trials from Environment
Deprecate or remove other constructor

Bug: webrtc:343086059
Change-Id: I863a1df1b313f871a0b03763be1588e68ceb84a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355182
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42545}
2024-06-26 15:25:23 +00:00
Tommi
81a3d95332 Add checks and explicit buffer inititalization for FrameCombiner
Bug: chromium:335805780
Change-Id: I26825941076e78573de268f6e2da7215ee1ea762
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355740
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42544}
2024-06-26 14:01:30 +00:00
Sergey Silkin
0bbc8ce12b Enable flexible mode by default
Added a dedicated kill-switch WebRTC-Video-Vp9FlexibleMode.

Bug: webrtc:329396373
Change-Id: I1acb28032898379eecf7dd81a770c73708286d74
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355700
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42543}
2024-06-26 13:46:07 +00:00
Danil Chapovalov
1030eaaffe Provide Environment to create an audio encoder in tests
Bug: webrtc:343086059
Change-Id: I73a48770ae67e529eb5065e957ea6420dea44975
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/354881
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42542}
2024-06-26 12:54:36 +00:00
Artem Titov
eb3da2b1ec Extract video writing into separate target
Bug: None
Change-Id: I3af192606eb623e21a4d648fb69bb62c14ab8b0d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355560
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42541}
2024-06-26 12:47:15 +00:00
Björn Terelius
0592d2b3c4 Revert "Roll chromium_revision 536609c347..ba1ae79f58 (1316213:1319128)"
This reverts commit 3be745a20a6a54dadfc7d9369465f1236fd87b56.

Reason for revert: Investigating jni_zero issues

Original change's description:
> Roll chromium_revision 536609c347..ba1ae79f58 (1316213:1319128)
>
>
> Manually changed ninja package to 'infra/3pp/build_support/ninja-1_11_1/${{platform}}'
>
> Change log: 536609c347..ba1ae79f58
> Full diff: 536609c347..ba1ae79f58
>
> Changed dependencies
> * fuchsia_version: version:21.20240613.1.1..version:21.20240620.2.1
> * ninja_version: version:2@1.11.1.chromium.6..version:2@1.11.1.chromium.2
> * reclient_version: re_client_version:0.143.0.518e369-gomaip..re_client_version:0.148.0.41b09b51-gomaip
> * src/base: 21aa1c623a..aa6dbe6d6a
> * src/build: 574613cf34..5bce81deee
> * src/buildtools: 8acbed5185..94d7b86a83
> * src/buildtools/reclient: re_client_version:0.143.0.518e369-gomaip..re_client_version:0.148.0.41b09b51-gomaip
> * src/ios: c5094fae2f..9e33110a5d
> * src/testing: ca3cf42d0a..a1b47952f3
> * src/third_party: 361b05ad7c..91945cadc2
> * src/third_party/androidx: Z-16gFTbhA-coeMbJVUhkfglE569L1q8iVWgtwIs9oMC..-zomVY2T8V3NRjAUbZNAZpFp8dAPuNdu3oQsnmhhIHEC
> * src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/9cac8a6b38..f01108e476
> * src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/1a0040059f..022cd349fe
> * src/third_party/depot_tools: 66df2a3ec7..f1c7c96958
> * src/third_party/ffmpeg: bc1ee906ce..d941d9677b
> * src/third_party/freetype/src: d41a855aab..73720c7c99
> * src/third_party/icu: 43953f57b0..163e29159e
> * src/third_party/kotlinc/current: 0jpbSygC1gCOFyv-hsyNVfvxPLhDSXnTCSnxHY_mjKoC..9KgLQsrBWX4kePu9T7eDB1JknSYIPKmmumTEE70lyHYC
> * src/third_party/libaom/source/libaom: https://aomedia.googlesource.com/aom.git/+log/49c02efb61..afedaf9da5
> * src/third_party/libc++/src: 6caebae1eb..09b99fd8ab
> * src/third_party/libc++abi/src: 472d9aad97..bac941ca44
> * src/third_party/libunwind/src: c8f1d81998..dcc1ffafb5
> * src/third_party/libvpx/source/libvpx: a2508b5711..253d6365e3
> * src/third_party/ninja: version:2@1.11.1.chromium.6..version:2@1.11.1.chromium.2
> * src/third_party/perfetto: 1990573f6d..f9098afffa
> * src/third_party/r8: BbsWCeVMT641FkMRNj4fbXc-wfImc7dl45HwKXWk0hsC..M8rc1oybTkWXWpoImSQ8gAwv6mdEyvAPnQNs6Dus_28C
> * src/third_party/re2/src: 4a8cee3dd3..6144b62bec
> * src/third_party/turbine: s6-zuFNzLDZOl_FmPkk2_LENOqUKjkYmpqR9l0SDo94C..xWEBZuFKl1Dvw_zOpabeMkGVYlEllIxK06D-RoC6wUsC
> * src/tools: 4d74770ca4..a8fe86b922
> DEPS diff: 536609c347..ba1ae79f58/DEPS
>
> Clang version changed llvmorg-19-init-10646-g084e2b53:llvmorg-19-init-14561-gecea8371
> Details: 536609c347..ba1ae79f58/tools/clang/scripts/update.py
>
> BUG=None
>
> Change-Id: Id887574c285eb12c82ed71e3434bd380646560ef
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355520
> Reviewed-by: Jeremy Leconte <jleconte@google.com>
> Commit-Queue: Björn Terelius <terelius@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#42535}

Bug: None
Change-Id: Ic31468e3b114329aef9646f5196128fbd3ca6403
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355703
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Auto-Submit: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42540}
2024-06-26 11:20:34 +00:00
Artem Titov
a6c34d10cb Introduce an empty target for video_frame_writer
This target then will be filled with writer related part from "video_test_support"
This allows downstream to migrate on the new target keeping dependency on the old one.

Bug: None
Change-Id: Ie0b2f0ff9c7896c70b9a204ffedf15afac43c143
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355580
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42539}
2024-06-26 10:02:37 +00:00
Mirko Bonadei
f86c247185 Remove api/wrapping_async_dns_resolver.cc.
Its header and its compilation configs have been removed by
https://webrtc-review.googlesource.com/c/src/+/323004.

Bug: webrtc:12598
Change-Id: I5ecf0c5ab273d09b90e663c1f70d10e4cc593aec
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/355260
Auto-Submit: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42538}
2024-06-26 08:26:24 +00:00