Commit Graph

37209 Commits

Author SHA1 Message Date
5027c1a482 Reland "Reland "ObjC ADM: record/play implementation via RTCAudioDevice [3/3]""
This is a reland of commit 9a0a6a198e8e247884fe01d7e0aa6bd425721c14

Original change's description:
> Reland "ObjC ADM: record/play implementation via RTCAudioDevice [3/3]"
>
> This is a reland of commit 2b9aaad58f56744f5c573c3b918fe072566598a5
>
> Original change's description:
> > ObjC ADM: record/play implementation via RTCAudioDevice [3/3]
> >
> > # Overview
> > This CL chain exposes new API from ObjC WebRTC SDK to inject custom
> > means to play and record audio. The goal of CLs is achieved by having
> > additional implementation of `webrtc::AudioDeviceModule`
> > called `ObjCAudioDeviceModule`. The feature
> > of `ObjCAudioDeviceModule` is that it does not directly use any
> > of OS-provided audio APIs like AudioUnit, AVAudioEngine, AudioQueue,
> > AVCaptureSession etc. Instead it delegates communication with specific
> > system audio API to user-injectable audio device instance which
> > implements `RTCAudioDevice` protocol.
> > `RTCAudioDevice` is new API added to ObC WebRTC SDK in the CL chain.
> >
> > # AudioDeviceBuffer
> > `ObjCAudioDeviceModule` does conform to heavy `AudioDeviceModule`
> > interface providing stubs for unrelated methods. It also implements
> > common low-level management of audio device buffer, which glues audio
> > PCM flow to/from WebRTC.
> > `ObjCAudioDeviceModule` owns single `webrtc::AudioDeviceBuffer` which
> > with the help of two `FineAudioBuffer` (one for recording and one for
> > playout) is exchanged audio PCMs with user-provided `RTCAudioDevice`
> > instance.
> > `webrtc::AudioDeviceBuffer` is configured to work with specific audio:
> > it has to know sample rate and channels count of audio being played and
> > recorded. These formats could be different between playout and
> > recording. `ObjCAudioDeviceModule` stores current audio  parameters
> > applied  to `webrtc::AudioDeviceBuffer` as fields of
> > type `webrtc::AudioParameters`. `RTCAudioDevice` has it's own variable
> > audio parameters like sample rate, channels  count and IO buffer
> > duration. The audio parameters of `RTCAudioDevice` must be kept in sync
> > with audio parameters applied to `webrtc::AudioDeviceBuffer`, otherwise
> > audio playout and recording will be corrupted: audio is sent only
> > partially over the wire and/or audio is played with artifacts.
> > `ObjCAudioDeviceModule` reads current `RTCAudioDevice` audio parameters
> > when playout or recording is initialized. Whenever `RTCAudioDevice`
> > audio parameters parameters are changed, there must be a notification to
> > `ObjCAudioDeviceModule` to allow it to reconfigure
> > it's `webrtc::AudioDeviceBuffer`. The notification is performed
> > via `RTCAudioDeviceDelegate` object, which is provided
> > by `ObjCAudioDeviceModule` during initialization of `RTCAudioDevice`.
> >
> > # Threading
> > `ObjCAudioDeviceModule` is stick to same thread between initialization
> > and termination. The only exception is two IO functions invoked by SDK
> > user code presumably from real-time audio IO thread.
> > Implementation of `RTCAudioDevice` may rely on the fact that all the
> > methods of `RTCAudioDevice` are called on the same thread between
> > initialization and termination. `ObjCAudioDeviceModule` is also expect
> > that the implementation of `RTCAudioDevice` will call methods related
> > to notification of audio parameters changes and audio interruption are
> > invoked on `ObjCAudioDeviceModule` thread. To facilitate this
> > requirement `RTCAudioDeviceDelegate` provides two functions to execute
> > sync and async block on `ObjCAudioDeviceModule` thread.
> > Async block could be useful when handling audio session notifications to
> > dispatch whole block re-configuring audio objects used
> > by `RTCAudioDevice` implementation.
> > Sync block could be used to make sure changes to audio parameters
> > of ADB owned by `ObjCAudioDeviceModule` are notified, before interrupted
> > playout/recording restarted.
> >
> > Bug: webrtc:14193
> > Change-Id: I5587ec6bbee3cf02bad70dd59b822feb0ada7f86
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269006
> > Reviewed-by: Henrik Andreasson <henrika@google.com>
> > Commit-Queue: Yury Yarashevich <yura.yaroshevich@gmail.com>
> > Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org>
> > Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> > Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#37928}
>
> Bug: webrtc:14193
> Change-Id: Iaf950d24bb2394a20e50421d5122f72ce46ae840
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273380
> Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
> Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#37946}

Bug: webrtc:14193
Change-Id: I84a6462c233daae7f662224513809b13e7218029
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273662
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37977}
2022-09-01 08:18:38 +00:00
5872630a33 Roll chromium_revision 9009f27281..dca55c6128 (1041812:1041932)
Change log: 9009f27281..dca55c6128
Full diff: 9009f27281..dca55c6128

Changed dependencies
* src/base: fc03a1ce91..b2a14655ab
* src/build: 6ff45c799e..0d770d1984
* src/ios: 8f89cb91eb..85db71872d
* src/testing: fc8d74a5a2..822fdb25cd
* src/third_party: ad14daf0cb..148967e6da
* src/third_party/androidx: 7LibE0MLJMFS99X0RgfGxaihptFBes7DCeHNQU_qJGMC..vqYWBuNeaF85CGvaKzQtC7wXNdb5Yy-R-KFqxDNbyBkC
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/638d30eac6..94fe26f9d5
* src/third_party/depot_tools: b0fb8d570d..5084800dc3
* src/third_party/ffmpeg: b71ecd02b4..64d7d8d0e5
* src/tools: 237b64cdef..b37ad79dd9
Removed dependency
* src/third_party/android_deps/libs/org_robolectric_shadows_multidex
DEPS diff: 9009f27281..dca55c6128/DEPS

No update to Clang.

BUG=None

Change-Id: Icd5af41bc283e2cb732c3b875631977df3f703b6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273740
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Bot-Commit: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#37976}
2022-09-01 07:15:28 +00:00
54e18848af Update WebRTC code version (2022-09-01T04:05:03).
Bug: None
Change-Id: Ic2577c31b88bdaab4df1c260f280faeb6c59f8c6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273724
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@{#37975}
2022-09-01 05:21:07 +00:00
4c77c54623 Roll chromium_revision c530c43688..9009f27281 (1041686:1041812)
Change log: c530c43688..9009f27281
Full diff: c530c43688..9009f27281

Changed dependencies
* src/base: 7401880f2d..fc03a1ce91
* src/build: 5aad1279cd..6ff45c799e
* src/buildtools: 3899188c45..c24a0d5e7d
* src/ios: 786661ad1c..8f89cb91eb
* src/testing: dc8e6066b9..fc8d74a5a2
* src/third_party: 2fc5259bf3..ad14daf0cb
* src/tools: ce5ecfe9e6..237b64cdef
DEPS diff: c530c43688..9009f27281/DEPS

No update to Clang.

BUG=None

Change-Id: I2a0713db97d82766f499d0dc4ee037fbc22534c1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273721
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@{#37974}
2022-09-01 00:50:27 +00:00
b9235c3cd2 Roll chromium_revision 72e9ff45bf..c530c43688 (1041569:1041686)
Change log: 72e9ff45bf..c530c43688
Full diff: 72e9ff45bf..c530c43688

Changed dependencies
* src/base: 05f81f42ad..7401880f2d
* src/build: d74c52459f..5aad1279cd
* src/ios: c44fd53761..786661ad1c
* src/testing: 829fc8db40..dc8e6066b9
* src/third_party: 0f1c153ff6..2fc5259bf3
* src/third_party/androidx: hKX0VX69NMeCLmcE5neFgOa7S9dQdcsR_dbFV9ZcFmoC..7LibE0MLJMFS99X0RgfGxaihptFBes7DCeHNQU_qJGMC
* src/third_party/fuchsia-sdk/sdk: version:9.20220830.2.1..version:9.20220831.2.1
* src/third_party/perfetto: cfc11efaad..85910f22b6
* src/tools: 509c6e9463..ce5ecfe9e6
DEPS diff: 72e9ff45bf..c530c43688/DEPS

No update to Clang.

BUG=None

Change-Id: Iacf32b04fa3454a5e1678e05aed81bf612c20e97
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273686
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@{#37973}
2022-08-31 21:24:38 +00:00
86015a6610 Reland "Add plumbing to control PipeWire picker visibility"
This reverts commit 0098a441e3990f80bcbe05dfce8c6e2359f7ef25.

Reason for revert: Fix chromium build break

Original change's description:
> Revert "Add plumbing to control PipeWire picker visibility"
>
> This reverts commit fbea8c519684577a38cb35b9287ba4645a905094.
>
> Reason for revert: Breaks WebRTC import into Chromium, e.g:
> https://chromium-review.googlesource.com/c/chromium/src/+/3863998/
>
> Original change's description:
> > Add plumbing to control PipeWire picker visibility
> >
> > Introduces the notion of a "delegated source list" and corresponding
> > controller. This is used by desktop capturers (currently just the
> > PipeWire capturer), who control selecting the source through their own
> > (often system-level) UI, rather than returning a source list with all
> > available options that can then be selected by the embedder.
> >
> > Adds a method to get the controller which serves to also tell embedders
> > if the capturer makes use of a delegated source list. The controller
> > currently allows the embedder to request that the delegated source list
> > be shown or hidden, and will in the future be used to expose events
> > from the source list (e.g. selection, dismissal, error).
> >
> > Bug: chromium:1351572
> > Change-Id: Ie1d36ed654013f59b8d9095deef01a4705fd5bde
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/272621
> > Reviewed-by: Mark Foltz <mfoltz@chromium.org>
> > Commit-Queue: Alexander Cooper <alcooper@chromium.org>
> > Cr-Commit-Position: refs/heads/main@{#37956}
>
> Bug: chromium:1351572
> Change-Id: I06f76ab9c8bc1aa303dae177d48698951fdc5ecd
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273703
> Auto-Submit: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> Reviewed-by: Henrik Boström <hbos@webrtc.org>
> Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#37964}

Bug: chromium:1351572
Change-Id: I9e5e691746b81517bf0e211d0ad5a23371ab29ba
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273685
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Auto-Submit: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#37972}
2022-08-31 20:59:19 +00:00
813177d98f Fix generate_licenses Presubmit when working within chromium
When working within chromium, we need to move up two more levels before
we can import the "find_depot_tools" module. Previously this was
managed by a loop that kept moving up until it found a directory named
'src', but this didn't work if the base-level webrtc code was not in
a directory named 'src'.

Bug: webrtc:14411
Change-Id: I2729603d6d2fd8242a1294ae5d95d946db619d0a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273561
Commit-Queue: Alexander Cooper <alcooper@chromium.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37971}
2022-08-31 18:28:57 +00:00
73e677817a Roll chromium_revision 5b158e7c3a..72e9ff45bf (1041450:1041569)
Change log: 5b158e7c3a..72e9ff45bf
Full diff: 5b158e7c3a..72e9ff45bf

Changed dependencies
* src/base: 081cb423d7..05f81f42ad
* src/buildtools: 69f262d101..3899188c45
* src/buildtools/linux64: git_revision:5705e56a0e5856621415cfdf444432554e72c9c9..git_revision:00b741b1568d56cf4e117dcb9f70cd42653b4c78
* src/buildtools/mac: git_revision:5705e56a0e5856621415cfdf444432554e72c9c9..git_revision:00b741b1568d56cf4e117dcb9f70cd42653b4c78
* src/buildtools/third_party/libc++/trunk: e5670a0e0e..42e738f0a1
* src/buildtools/win: git_revision:5705e56a0e5856621415cfdf444432554e72c9c9..git_revision:00b741b1568d56cf4e117dcb9f70cd42653b4c78
* src/ios: 6bc72a05a8..c44fd53761
* src/testing: 5689014c1e..829fc8db40
* src/third_party: 67f33db599..0f1c153ff6
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/ebd8b8965c..10fef972e4
* src/third_party/perfetto: 55013a0f8d..cfc11efaad
* src/third_party/r8: fBkGW5rA8tbENWw27QnOET2E7L4k4HstrWKg4kIBzDQC..k-rsF0crG3zBArTjEZbYn9ZKk1MGSMeSKp_ruAONHXAC
* src/tools: 2d92e14ff6..509c6e9463
DEPS diff: 5b158e7c3a..72e9ff45bf/DEPS

No update to Clang.

BUG=None

Change-Id: I5709b04707ffe5ae28137fcf72e516019f440ae6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273684
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@{#37970}
2022-08-31 18:23:36 +00:00
24c1079b2f Reland "rtpsender interface: make pure virtual again"
This reverts commit fbb7ce8a935db1988b3571639cab1eaed88980d1.

Reason for revert: Relanding because the upstream project should be compatible with the changes now.

Original change's description:
> Revert "rtpsender interface: make pure virtual again"
>
> This reverts commit 021512b76a872b04e803d61f46c740ed363d641b.
>
> Reason for revert: Breaks upstream project. It relies on the default implementation. The CL will be relanded after the migration is done. We will make sure to do it shortly.
>
> Original change's description:
> > rtpsender interface: make pure virtual again
> >
> > after providing default implementations in Chromium tests
> >
> > BUG=None
> >
> > Change-Id: I53bf26b3a99416f4005e7df75b9b86dfbf2489cb
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273100
> > Commit-Queue: Philipp Hancke <phancke@microsoft.com>
> > Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#37941}
>
> Bug: None
> Change-Id: I40f27c36819365fadae32032521f7e11184bee62
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273484
> Owners-Override: Andrey Logvin <landrey@google.com>
> Commit-Queue: Andrey Logvin <landrey@google.com>
> Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
> Auto-Submit: Andrey Logvin <landrey@google.com>
> Cr-Commit-Position: refs/heads/main@{#37947}

Bug: None
Change-Id: I531e17d5252d4bd5450d5ac5c64fc8f51b4a1d1d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273701
Commit-Queue: Andrey Logvin <landrey@google.com>
Reviewed-by: Philipp Hancke <phancke@microsoft.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Owners-Override: Andrey Logvin <landrey@google.com>
Cr-Commit-Position: refs/heads/main@{#37969}
2022-08-31 14:47:14 +00:00
ecfe8da46b Add support for more scalability modes (1.5:1 resolution ratio).
Added modes:
- S2T1h
- S2T2h
- S2T3h
- S3T1h
- S3T2h
- S3T3h

Bug: webrtc:13960
Change-Id: I618a30c68b0ce1609847ee33a2298fe8fa0720c9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273664
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37968}
2022-08-31 11:01:16 +00:00
74195b2b44 Roll chromium_revision 2cc12c0be8..5b158e7c3a (1041270:1041450)
Change log: 2cc12c0be8..5b158e7c3a
Full diff: 2cc12c0be8..5b158e7c3a

Changed dependencies
* src/base: ab04756ac5..081cb423d7
* src/build: 955485279f..d74c52459f
* src/buildtools: c9954b6fc9..69f262d101
* src/ios: 4671dad7ea..6bc72a05a8
* src/testing: ea5e08e90e..5689014c1e
* src/third_party: 7c73b428b2..67f33db599
* src/third_party/androidx: bACPkzOmzb-UXwvk3JSg_LA_08jHyKdWKWmYT4EM9PUC..hKX0VX69NMeCLmcE5neFgOa7S9dQdcsR_dbFV9ZcFmoC
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/6552f9ba7b..638d30eac6
* src/third_party/depot_tools: 8d2f774038..b0fb8d570d
* src/third_party/fuchsia-sdk/sdk: version:9.20220830.0.1..version:9.20220830.2.1
* src/third_party/r8: wpKAIapAzFMYz4FLgNNSvKa2R2RlmLePoZ7jdwLPkJgC..fBkGW5rA8tbENWw27QnOET2E7L4k4HstrWKg4kIBzDQC
* src/tools: 11320b944b..2d92e14ff6
DEPS diff: 2cc12c0be8..5b158e7c3a/DEPS

No update to Clang.

BUG=None

Change-Id: Iae78037bc4260c377ddacbb4018811b4eaa7f783
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273681
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Bot-Commit: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#37967}
2022-08-31 10:49:36 +00:00
43e11c881b Field trials for ProbeController when a network state estimate is known.
Ensure initial second probe can be disabled.
Can configure separate probe duration if the network state estimate is known.
Can probe immediately if network state estimate increase more than a factor

Bug: webrtc:14392
Change-Id: Iefb980f0b10c7c51db62793c3bd3f187fc67593d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273349
Reviewed-by: Diep Bui <diepbp@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37966}
2022-08-31 09:49:36 +00:00
d13686a26b Remove unneeded semicolon
Followup for https://webrtc-review.googlesource.com/c/src/+/268840

This semicolon breaks presubmit tests for chromium to webrtc roll: https://webrtc-review.googlesource.com/c/src/+/273621/

Bug: None
Change-Id: I5e603736da1976e38f0186422716d1b0dba5d2de
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273700
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Auto-Submit: Andrey Logvin <landrey@google.com>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37965}
2022-08-31 09:29:44 +00:00
0098a441e3 Revert "Add plumbing to control PipeWire picker visibility"
This reverts commit fbea8c519684577a38cb35b9287ba4645a905094.

Reason for revert: Breaks WebRTC import into Chromium, e.g:
https://chromium-review.googlesource.com/c/chromium/src/+/3863998/

Original change's description:
> Add plumbing to control PipeWire picker visibility
>
> Introduces the notion of a "delegated source list" and corresponding
> controller. This is used by desktop capturers (currently just the
> PipeWire capturer), who control selecting the source through their own
> (often system-level) UI, rather than returning a source list with all
> available options that can then be selected by the embedder.
>
> Adds a method to get the controller which serves to also tell embedders
> if the capturer makes use of a delegated source list. The controller
> currently allows the embedder to request that the delegated source list
> be shown or hidden, and will in the future be used to expose events
> from the source list (e.g. selection, dismissal, error).
>
> Bug: chromium:1351572
> Change-Id: Ie1d36ed654013f59b8d9095deef01a4705fd5bde
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/272621
> Reviewed-by: Mark Foltz <mfoltz@chromium.org>
> Commit-Queue: Alexander Cooper <alcooper@chromium.org>
> Cr-Commit-Position: refs/heads/main@{#37956}

Bug: chromium:1351572
Change-Id: I06f76ab9c8bc1aa303dae177d48698951fdc5ecd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273703
Auto-Submit: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37964}
2022-08-31 09:19:06 +00:00
d6c7ee734b Fix typo in build_aar.py
Android release builders are failing for this typo.
https://ci.chromium.org/ui/p/webrtc/builders/ci/Android32%20(M%20Nexus5X)/20419/overview


Bug: b/243628179
Change-Id: I73353c0e44cc95feb197c4d95059234c2465c0c8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273601
Auto-Submit: Junji Watanabe <jwata@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37963}
2022-08-31 07:56:42 +00:00
d42581af77 Remove py3 experiment since its now default
Bug: webrtc:13607
Change-Id: I6e2eb5ce36a6a2551f24ca5b7b1a6159bd4207d1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273663
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Christoffer Jansson <jansson@google.com>
Cr-Commit-Position: refs/heads/main@{#37962}
2022-08-31 07:54:53 +00:00
85492c5571 Update WebRTC code version (2022-08-31T04:05:37).
Bug: None
Change-Id: I510eaa65a83e44794e858d997d3ce18c791a3fb3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273622
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@{#37961}
2022-08-31 06:44:42 +00:00
1a7dd713bf Add --use-remoteexec option to build_aar.py
build_aar.py is used at "build android archive" step.
This script also needs to support reclient.

Bug: b/243628179
Change-Id: Ic95058195db0b97109150a009fe44f87c5ebf2d1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273600
Auto-Submit: Junji Watanabe <jwata@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Takuto Ikuta <tikuta@google.com>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37960}
2022-08-31 05:35:22 +00:00
8bff1a81cb Do not block PipeWire thread loop in case of an error
We might be potentially blocking PipeWire initialization with call to
pw_thread_loop_wait() and waiting undefinitely for response in case
there is a fatal error.

Bug: webrtc:13429
Change-Id: If169e04f75a7d24a03a0fcd0da9ffaba8c0e2ef7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273481
Commit-Queue: Mark Foltz <mfoltz@chromium.org>
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Cr-Commit-Position: refs/heads/main@{#37959}
2022-08-31 05:11:22 +00:00
1d659d67b1 Roll chromium_revision 85040207fe..2cc12c0be8 (1041145:1041270)
Change log: 85040207fe..2cc12c0be8
Full diff: 85040207fe..2cc12c0be8

Changed dependencies
* src/build: abd9d5fa88..955485279f
* src/ios: a1dbe056fe..4671dad7ea
* src/testing: 38a5ce7e78..ea5e08e90e
* src/third_party: 8fd31ff1e4..7c73b428b2
* src/third_party/depot_tools: 3528d4d3c5..8d2f774038
* src/tools: e6d9936223..11320b944b
DEPS diff: 85040207fe..2cc12c0be8/DEPS

No update to Clang.

BUG=None

Change-Id: I76c952be4e20d75366badb03869e9994ff31af9b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273521
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@{#37958}
2022-08-31 00:43:32 +00:00
5abbd691b1 Roll chromium_revision a4f984ee73..85040207fe (1041012:1041145)
Change log: a4f984ee73..85040207fe
Full diff: a4f984ee73..85040207fe

Changed dependencies
* src/base: f2c46e6214..ab04756ac5
* src/build: a611acf0ed..abd9d5fa88
* src/ios: a631620871..a1dbe056fe
* src/testing: ab8b7acfeb..38a5ce7e78
* src/third_party: 16732b6aec..8fd31ff1e4
* src/third_party/androidx: 3oYQJRLwi73aUNy62B5mAQme7CtnXt4WDXjlHFlhqe0C..bACPkzOmzb-UXwvk3JSg_LA_08jHyKdWKWmYT4EM9PUC
* src/third_party/r8: UQXAUIg11QBR0HJg-Izctj2hg-wGB9cr6s-8oxTCQ-IC..wpKAIapAzFMYz4FLgNNSvKa2R2RlmLePoZ7jdwLPkJgC
* src/tools: d0e990f325..e6d9936223
DEPS diff: a4f984ee73..85040207fe/DEPS

Clang version changed llvmorg-16-init-907-g8b740747:llvmorg-16-init-3221-gce6989fd
Details: a4f984ee73..85040207fe/tools/clang/scripts/update.py

BUG=None

Change-Id: I6816e577943b966afab03af01df37e3f50dda7fc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273560
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@{#37957}
2022-08-30 20:56:01 +00:00
fbea8c5196 Add plumbing to control PipeWire picker visibility
Introduces the notion of a "delegated source list" and corresponding
controller. This is used by desktop capturers (currently just the
PipeWire capturer), who control selecting the source through their own
(often system-level) UI, rather than returning a source list with all
available options that can then be selected by the embedder.

Adds a method to get the controller which serves to also tell embedders
if the capturer makes use of a delegated source list. The controller
currently allows the embedder to request that the delegated source list
be shown or hidden, and will in the future be used to expose events
from the source list (e.g. selection, dismissal, error).

Bug: chromium:1351572
Change-Id: Ie1d36ed654013f59b8d9095deef01a4705fd5bde
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/272621
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Commit-Queue: Alexander Cooper <alcooper@chromium.org>
Cr-Commit-Position: refs/heads/main@{#37956}
2022-08-30 19:39:01 +00:00
a9d9820928 Roll chromium_revision c29d1550ae..a4f984ee73 (1040869:1041012)
Change log: c29d1550ae..a4f984ee73
Full diff: c29d1550ae..a4f984ee73

Changed dependencies
* src/base: a630d2c8b0..f2c46e6214
* src/build: adc338f326..a611acf0ed
* src/buildtools: cf8185c5cb..c9954b6fc9
* src/ios: cf8dbb15c8..a631620871
* src/testing: 548d3c6ae2..ab8b7acfeb
* src/third_party: 24f9481c36..16732b6aec
* src/third_party/depot_tools: f41670fdad..3528d4d3c5
* src/third_party/fuchsia-sdk/sdk: version:9.20220826.3.1..version:9.20220830.0.1
* src/third_party/perfetto: 437f4431c5..55013a0f8d
* src/tools: 844646463f..d0e990f325
DEPS diff: c29d1550ae..a4f984ee73/DEPS

Clang version changed llvmorg-16-init-907-g8b740747:llvmorg-16-init-3221-gce6989fd
Details: c29d1550ae..a4f984ee73/tools/clang/scripts/update.py

BUG=None

Change-Id: I957256fb8ae46b318b0610ffeccb9bbd34b020c3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273520
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Bot-Commit: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#37955}
2022-08-30 17:06:51 +00:00
2635b8e0d2 AgcManagerDirect: Add logging of startup_min_volume
Bug: webrtc:7494
Change-Id: I4dc4134e6d5bfac84d41a1563c0ca04043b40ecf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273489
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Hanna Silen <silen@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37954}
2022-08-30 14:56:12 +00:00
33155d763c svc: Remove references to bogus modes
Those never existed, were likely a copy-paste error in the spec
that we somehow inherited.

Bug: webrtc:11607
Change-Id: Ib4a038f061123e879f1099656273f6392f092213
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273485
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Auto-Submit: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37953}
2022-08-30 14:03:21 +00:00
38de6bc0b8 svc: Remove use of the VideoFrameTrackingIdAdvertised trial
AV1 tests seem to be running fine now that we have the dependency
descriptor enabled, so remove the need for the RTP header extension
as it doesn't allow discarding frames.

Bug: webrtc:11607
Change-Id: Ifd0670ab61a5b69d0570f65ba30c352a31376992
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273488
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Auto-Submit: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37952}
2022-08-30 14:00:11 +00:00
319531efa6 Add support for more scalability modes (1.5:1 resolution ratio).
Added modes:
- L2T2h
- L2T3h
- L3T1h
- L3T2h
- L3T3h

Bug: webrtc:13960
Change-Id: I046a9a1f90629f6d4a5a82d4434e7cc0fa983263
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273345
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37951}
2022-08-30 12:33:41 +00:00
bcc31826ab Revert "Reland "ObjC ADM: record/play implementation via RTCAudioDevice [3/3]""
This reverts commit 9a0a6a198e8e247884fe01d7e0aa6bd425721c14.

Reason for revert: Breaks upstream project

Original change's description:
> Reland "ObjC ADM: record/play implementation via RTCAudioDevice [3/3]"
>
> This is a reland of commit 2b9aaad58f56744f5c573c3b918fe072566598a5
>
> Original change's description:
> > ObjC ADM: record/play implementation via RTCAudioDevice [3/3]
> >
> > # Overview
> > This CL chain exposes new API from ObjC WebRTC SDK to inject custom
> > means to play and record audio. The goal of CLs is achieved by having
> > additional implementation of `webrtc::AudioDeviceModule`
> > called `ObjCAudioDeviceModule`. The feature
> > of `ObjCAudioDeviceModule` is that it does not directly use any
> > of OS-provided audio APIs like AudioUnit, AVAudioEngine, AudioQueue,
> > AVCaptureSession etc. Instead it delegates communication with specific
> > system audio API to user-injectable audio device instance which
> > implements `RTCAudioDevice` protocol.
> > `RTCAudioDevice` is new API added to ObC WebRTC SDK in the CL chain.
> >
> > # AudioDeviceBuffer
> > `ObjCAudioDeviceModule` does conform to heavy `AudioDeviceModule`
> > interface providing stubs for unrelated methods. It also implements
> > common low-level management of audio device buffer, which glues audio
> > PCM flow to/from WebRTC.
> > `ObjCAudioDeviceModule` owns single `webrtc::AudioDeviceBuffer` which
> > with the help of two `FineAudioBuffer` (one for recording and one for
> > playout) is exchanged audio PCMs with user-provided `RTCAudioDevice`
> > instance.
> > `webrtc::AudioDeviceBuffer` is configured to work with specific audio:
> > it has to know sample rate and channels count of audio being played and
> > recorded. These formats could be different between playout and
> > recording. `ObjCAudioDeviceModule` stores current audio  parameters
> > applied  to `webrtc::AudioDeviceBuffer` as fields of
> > type `webrtc::AudioParameters`. `RTCAudioDevice` has it's own variable
> > audio parameters like sample rate, channels  count and IO buffer
> > duration. The audio parameters of `RTCAudioDevice` must be kept in sync
> > with audio parameters applied to `webrtc::AudioDeviceBuffer`, otherwise
> > audio playout and recording will be corrupted: audio is sent only
> > partially over the wire and/or audio is played with artifacts.
> > `ObjCAudioDeviceModule` reads current `RTCAudioDevice` audio parameters
> > when playout or recording is initialized. Whenever `RTCAudioDevice`
> > audio parameters parameters are changed, there must be a notification to
> > `ObjCAudioDeviceModule` to allow it to reconfigure
> > it's `webrtc::AudioDeviceBuffer`. The notification is performed
> > via `RTCAudioDeviceDelegate` object, which is provided
> > by `ObjCAudioDeviceModule` during initialization of `RTCAudioDevice`.
> >
> > # Threading
> > `ObjCAudioDeviceModule` is stick to same thread between initialization
> > and termination. The only exception is two IO functions invoked by SDK
> > user code presumably from real-time audio IO thread.
> > Implementation of `RTCAudioDevice` may rely on the fact that all the
> > methods of `RTCAudioDevice` are called on the same thread between
> > initialization and termination. `ObjCAudioDeviceModule` is also expect
> > that the implementation of `RTCAudioDevice` will call methods related
> > to notification of audio parameters changes and audio interruption are
> > invoked on `ObjCAudioDeviceModule` thread. To facilitate this
> > requirement `RTCAudioDeviceDelegate` provides two functions to execute
> > sync and async block on `ObjCAudioDeviceModule` thread.
> > Async block could be useful when handling audio session notifications to
> > dispatch whole block re-configuring audio objects used
> > by `RTCAudioDevice` implementation.
> > Sync block could be used to make sure changes to audio parameters
> > of ADB owned by `ObjCAudioDeviceModule` are notified, before interrupted
> > playout/recording restarted.
> >
> > Bug: webrtc:14193
> > Change-Id: I5587ec6bbee3cf02bad70dd59b822feb0ada7f86
> > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269006
> > Reviewed-by: Henrik Andreasson <henrika@google.com>
> > Commit-Queue: Yury Yarashevich <yura.yaroshevich@gmail.com>
> > Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org>
> > Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> > Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
> > Cr-Commit-Position: refs/heads/main@{#37928}
>
> Bug: webrtc:14193
> Change-Id: Iaf950d24bb2394a20e50421d5122f72ce46ae840
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273380
> Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
> Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#37946}

Bug: webrtc:14193
Change-Id: I5e18cc919ca4bb1cef7d5a11489451a0907f0d66
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273486
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Owners-Override: Andrey Logvin <landrey@google.com>
Commit-Queue: Andrey Logvin <landrey@google.com>
Cr-Commit-Position: refs/heads/main@{#37950}
2022-08-30 11:58:34 +00:00
2d7db71fda Add an API to query resolution ratio between spatial layers
Bug: webrtc:13960
Change-Id: I349b08397e1cd1235bb15af1011aaac8383388b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273122
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Daniel.L (Byoungchan) Lee <daniel.l@hpcnt.com>
Cr-Commit-Position: refs/heads/main@{#37949}
2022-08-30 11:48:04 +00:00
1cb799c31c Prevent potential UAF during VideoStreamEncoder teardown.
Bug: chromium:1357413
Change-Id: I9ec4d4fbafe1c25530346faf09f5b437fad718cc
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273482
Reviewed-by: Markus Handell <handellm@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Auto-Submit: Erik Språng <sprang@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37948}
2022-08-30 11:47:01 +00:00
fbb7ce8a93 Revert "rtpsender interface: make pure virtual again"
This reverts commit 021512b76a872b04e803d61f46c740ed363d641b.

Reason for revert: Breaks upstream project. It relies on the default implementation. The CL will be relanded after the migration is done. We will make sure to do it shortly.

Original change's description:
> rtpsender interface: make pure virtual again
>
> after providing default implementations in Chromium tests
>
> BUG=None
>
> Change-Id: I53bf26b3a99416f4005e7df75b9b86dfbf2489cb
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273100
> Commit-Queue: Philipp Hancke <phancke@microsoft.com>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#37941}

Bug: None
Change-Id: I40f27c36819365fadae32032521f7e11184bee62
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273484
Owners-Override: Andrey Logvin <landrey@google.com>
Commit-Queue: Andrey Logvin <landrey@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Andrey Logvin <landrey@google.com>
Cr-Commit-Position: refs/heads/main@{#37947}
2022-08-30 11:27:50 +00:00
9a0a6a198e Reland "ObjC ADM: record/play implementation via RTCAudioDevice [3/3]"
This is a reland of commit 2b9aaad58f56744f5c573c3b918fe072566598a5

Original change's description:
> ObjC ADM: record/play implementation via RTCAudioDevice [3/3]
>
> # Overview
> This CL chain exposes new API from ObjC WebRTC SDK to inject custom
> means to play and record audio. The goal of CLs is achieved by having
> additional implementation of `webrtc::AudioDeviceModule`
> called `ObjCAudioDeviceModule`. The feature
> of `ObjCAudioDeviceModule` is that it does not directly use any
> of OS-provided audio APIs like AudioUnit, AVAudioEngine, AudioQueue,
> AVCaptureSession etc. Instead it delegates communication with specific
> system audio API to user-injectable audio device instance which
> implements `RTCAudioDevice` protocol.
> `RTCAudioDevice` is new API added to ObC WebRTC SDK in the CL chain.
>
> # AudioDeviceBuffer
> `ObjCAudioDeviceModule` does conform to heavy `AudioDeviceModule`
> interface providing stubs for unrelated methods. It also implements
> common low-level management of audio device buffer, which glues audio
> PCM flow to/from WebRTC.
> `ObjCAudioDeviceModule` owns single `webrtc::AudioDeviceBuffer` which
> with the help of two `FineAudioBuffer` (one for recording and one for
> playout) is exchanged audio PCMs with user-provided `RTCAudioDevice`
> instance.
> `webrtc::AudioDeviceBuffer` is configured to work with specific audio:
> it has to know sample rate and channels count of audio being played and
> recorded. These formats could be different between playout and
> recording. `ObjCAudioDeviceModule` stores current audio  parameters
> applied  to `webrtc::AudioDeviceBuffer` as fields of
> type `webrtc::AudioParameters`. `RTCAudioDevice` has it's own variable
> audio parameters like sample rate, channels  count and IO buffer
> duration. The audio parameters of `RTCAudioDevice` must be kept in sync
> with audio parameters applied to `webrtc::AudioDeviceBuffer`, otherwise
> audio playout and recording will be corrupted: audio is sent only
> partially over the wire and/or audio is played with artifacts.
> `ObjCAudioDeviceModule` reads current `RTCAudioDevice` audio parameters
> when playout or recording is initialized. Whenever `RTCAudioDevice`
> audio parameters parameters are changed, there must be a notification to
> `ObjCAudioDeviceModule` to allow it to reconfigure
> it's `webrtc::AudioDeviceBuffer`. The notification is performed
> via `RTCAudioDeviceDelegate` object, which is provided
> by `ObjCAudioDeviceModule` during initialization of `RTCAudioDevice`.
>
> # Threading
> `ObjCAudioDeviceModule` is stick to same thread between initialization
> and termination. The only exception is two IO functions invoked by SDK
> user code presumably from real-time audio IO thread.
> Implementation of `RTCAudioDevice` may rely on the fact that all the
> methods of `RTCAudioDevice` are called on the same thread between
> initialization and termination. `ObjCAudioDeviceModule` is also expect
> that the implementation of `RTCAudioDevice` will call methods related
> to notification of audio parameters changes and audio interruption are
> invoked on `ObjCAudioDeviceModule` thread. To facilitate this
> requirement `RTCAudioDeviceDelegate` provides two functions to execute
> sync and async block on `ObjCAudioDeviceModule` thread.
> Async block could be useful when handling audio session notifications to
> dispatch whole block re-configuring audio objects used
> by `RTCAudioDevice` implementation.
> Sync block could be used to make sure changes to audio parameters
> of ADB owned by `ObjCAudioDeviceModule` are notified, before interrupted
> playout/recording restarted.
>
> Bug: webrtc:14193
> Change-Id: I5587ec6bbee3cf02bad70dd59b822feb0ada7f86
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269006
> Reviewed-by: Henrik Andreasson <henrika@google.com>
> Commit-Queue: Yury Yarashevich <yura.yaroshevich@gmail.com>
> Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org>
> Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#37928}

Bug: webrtc:14193
Change-Id: Iaf950d24bb2394a20e50421d5122f72ce46ae840
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273380
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37946}
2022-08-30 11:26:41 +00:00
d306510b17 Roll chromium_revision a5257ccce7..c29d1550ae (1040403:1040869)
Change log: a5257ccce7..c29d1550ae
Full diff: a5257ccce7..c29d1550ae

Changed dependencies
* src/base: 7be4260b43..a630d2c8b0
* src/build: ac6f31c56b..adc338f326
* src/buildtools/reclient: re_client_version:0.76.0.f4c4bc4-gomaip..re_client_version:0.77.2.9cc22cf-gomaip
* src/buildtools/third_party/libc++/trunk: 26e3467ee8..e5670a0e0e
* src/ios: c30b19ab96..cf8dbb15c8
* src/testing: d44ba81111..548d3c6ae2
* src/third_party: 21a726fae5..24f9481c36
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/2417ba3d0d..6552f9ba7b
* src/third_party/depot_tools: b7ec673ccc..f41670fdad
* src/third_party/freetype/src: 4797b2ff22..dd91f6e7f5
* src/tools: b5cc5a154c..844646463f
DEPS diff: a5257ccce7..c29d1550ae/DEPS

No update to Clang.

BUG=None

Change-Id: I6e91b94d37f4704a6e0859a37b0814292b5b0c21
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273421
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@{#37945}
2022-08-30 10:49:11 +00:00
f4c0162310 Cleanup: Make AsyncResolveInterface::Start(addr,family) pure virtual
Dependencies have been updated now.

Bug: webrtc:14319, webrtc:14131
Change-Id: I03397f6dfa17cbb2faa85346c5ea37847f1e2482
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/271344
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Sameer Vijaykar <samvi@google.com>
Cr-Commit-Position: refs/heads/main@{#37944}
2022-08-30 10:09:32 +00:00
6d0516412e Add support for scalability modes S2T2, S3T1, S3T2.
Bug: webrtc:13960
Change-Id: Icafd3a5a3f8889777d65da5313b24e56a57af4d9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273301
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37943}
2022-08-30 09:51:11 +00:00
11093b2ca3 [PCLF] Add ability to specifiy DegradationPreference
Bug: None
Change-Id: I5fca1ae70b75b53b54c99a10cdada504146785b6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273120
Commit-Queue: Daniel.L (Byoungchan) Lee <daniel.l@hpcnt.com>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37942}
2022-08-30 09:45:41 +00:00
021512b76a rtpsender interface: make pure virtual again
after providing default implementations in Chromium tests

BUG=None

Change-Id: I53bf26b3a99416f4005e7df75b9b86dfbf2489cb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273100
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37941}
2022-08-30 09:19:45 +00:00
cc62b747c4 Add reclient Windows shadow builder
Bug: b/243628179
Change-Id: I9ee0a066dbfc1de97c35775468a6adcbdb8808c3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273440
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Auto-Submit: Junji Watanabe <jwata@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37940}
2022-08-30 08:48:51 +00:00
79e0ae7896 Update WebRTC code version (2022-08-30T04:04:55).
Bug: None
Change-Id: Ia3dd0062a095306f7b486c186895af6bfed503fd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273420
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@{#37939}
2022-08-30 07:48:27 +00:00
8baa453432 Add reclient Android/Mac/iOS shadow builders
Windows builder will be added after allocating Windows workers.

Bug: b/243628179
Change-Id: Id60af2fa630a3498c3f68c1d9fbaae31444bf95e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273125
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Junji Watanabe <jwata@google.com>
Auto-Submit: Junji Watanabe <jwata@google.com>
Reviewed-by: Takuto Ikuta <tikuta@google.com>
Cr-Commit-Position: refs/heads/main@{#37938}
2022-08-30 01:37:43 +00:00
926c707b12 PCLF: Read the interlayer prediction mode from scalability mode
The value of VP9().interLayerPred isn't used in the VP9 encoder
when scalability_mode is present.

Bug: webrtc:11607
Change-Id: I2ce606e5a91dfe087f652763cbcc258db0156f5f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273400
Auto-Submit: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37937}
2022-08-29 22:57:22 +00:00
7aca025859 doc: backfill M90-M105 release notes
and add list to branch dashboard.

BUG=None
No-Try: true

Change-Id: Ib95eb61a21bdf06878af7223c0ff8a3e19b3cdad
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273346
Auto-Submit: Philipp Hancke <phancke@microsoft.com>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37936}
2022-08-29 21:04:32 +00:00
1ab4e873e4 Run svc_tests on 4 shards.
The tests are sometimes hiting timeouts on msan runs:
https://chromium-swarm.appspot.com/task?id=5d02a893ec864210

Change-Id: I16f15f3ab5750bdcc37a1cd1e32846adb2fb7602
Bug: webrtc:11607
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273343
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#37935}
2022-08-29 20:24:04 +00:00
13942d858a Roll chromium_revision 7cf423b69f..a5257ccce7 (1039669:1040403)
Change log: 7cf423b69f..a5257ccce7
Full diff: 7cf423b69f..a5257ccce7

Changed dependencies
* src/base: 55ad74036f..7be4260b43
* src/build: 5221aeee35..ac6f31c56b
* src/buildtools: 11747ae48c..cf8185c5cb
* src/buildtools/linux64: git_revision:0bcd37bd2b83f1a9ee17088037ebdfe6eab6d31a..git_revision:5705e56a0e5856621415cfdf444432554e72c9c9
* src/buildtools/mac: git_revision:0bcd37bd2b83f1a9ee17088037ebdfe6eab6d31a..git_revision:5705e56a0e5856621415cfdf444432554e72c9c9
* src/buildtools/third_party/libc++/trunk: aa3a6cd0f1..26e3467ee8
* src/buildtools/win: git_revision:0bcd37bd2b83f1a9ee17088037ebdfe6eab6d31a..git_revision:5705e56a0e5856621415cfdf444432554e72c9c9
* src/ios: 53ae35d69e..c30b19ab96
* src/testing: 5615304f79..d44ba81111
* src/third_party: 965439bb3b..21a726fae5
* src/third_party/android_build_tools/manifest_merger: CvokX4c6dx7DwQ8VVMQ70CROzyJWg13oOq3feeuTzg8C..tAZpJUnwhFBJmu1ctEKYMLJp7l3qJufDu7ByW6waq3QC
* src/third_party/androidx: nhQRIlhK4IGHOx8szkcdvPaXbv8l6V0hf0bN48TSYo4C..3oYQJRLwi73aUNy62B5mAQme7CtnXt4WDXjlHFlhqe0C
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/8e773a22c9..2417ba3d0d
* src/third_party/depot_tools: 95f870fb5d..b7ec673ccc
* src/third_party/freetype/src: 395da3d72a..4797b2ff22
* src/third_party/fuchsia-sdk/sdk: version:9.20220825.3.1..version:9.20220826.3.1
* src/third_party/perfetto: f6016b7c1c..437f4431c5
* src/third_party/r8: _rv7EargK1mPOQPb7922ENB7-AaUTJZCxBWNBeLVsfQC..UQXAUIg11QBR0HJg-Izctj2hg-wGB9cr6s-8oxTCQ-IC
* src/tools: 80a8c448bc..b5cc5a154c
* src/tools/luci-go: git_revision:a0ba80649473055bae3d789eec28c9967adb5e45..git_revision:3226112a79a7c2de84c3186191e24dd61680a77d
* src/tools/luci-go: git_revision:a0ba80649473055bae3d789eec28c9967adb5e45..git_revision:3226112a79a7c2de84c3186191e24dd61680a77d
DEPS diff: 7cf423b69f..a5257ccce7/DEPS

No update to Clang.

BUG=None

Change-Id: I522898ae7bc9b5b95b954735e506ee0bdc80ca6c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273297
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Bot-Commit: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#37934}
2022-08-29 14:57:42 +00:00
209d71d27f [DVQA] Remove old OnDecoderError method
Bug: b/243855428
Change-Id: Id028f245df3bb729d558c2f6d0b0c167a7edc187
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273341
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Andrey Logvin <landrey@google.com>
Cr-Commit-Position: refs/heads/main@{#37933}
2022-08-29 14:53:02 +00:00
d6e9749942 Replace int with Timestamp and DataRate in ProbeController
Replace most instances. SetAlrStartTime is set as is should be cleaned up together with the callsite.

Bug: webrtc:14404
Change-Id: I8ec532828ef665afbf08f0943465a429ab40baa1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273300
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37932}
2022-08-29 14:48:32 +00:00
590a965a9f Revert "ObjC ADM: record/play implementation via RTCAudioDevice [3/3]"
This reverts commit 2b9aaad58f56744f5c573c3b918fe072566598a5.

Reason for revert: Breaks upstream project

Original change's description:
> ObjC ADM: record/play implementation via RTCAudioDevice [3/3]
>
> # Overview
> This CL chain exposes new API from ObjC WebRTC SDK to inject custom
> means to play and record audio. The goal of CLs is achieved by having
> additional implementation of `webrtc::AudioDeviceModule`
> called `ObjCAudioDeviceModule`. The feature
> of `ObjCAudioDeviceModule` is that it does not directly use any
> of OS-provided audio APIs like AudioUnit, AVAudioEngine, AudioQueue,
> AVCaptureSession etc. Instead it delegates communication with specific
> system audio API to user-injectable audio device instance which
> implements `RTCAudioDevice` protocol.
> `RTCAudioDevice` is new API added to ObC WebRTC SDK in the CL chain.
>
> # AudioDeviceBuffer
> `ObjCAudioDeviceModule` does conform to heavy `AudioDeviceModule`
> interface providing stubs for unrelated methods. It also implements
> common low-level management of audio device buffer, which glues audio
> PCM flow to/from WebRTC.
> `ObjCAudioDeviceModule` owns single `webrtc::AudioDeviceBuffer` which
> with the help of two `FineAudioBuffer` (one for recording and one for
> playout) is exchanged audio PCMs with user-provided `RTCAudioDevice`
> instance.
> `webrtc::AudioDeviceBuffer` is configured to work with specific audio:
> it has to know sample rate and channels count of audio being played and
> recorded. These formats could be different between playout and
> recording. `ObjCAudioDeviceModule` stores current audio  parameters
> applied  to `webrtc::AudioDeviceBuffer` as fields of
> type `webrtc::AudioParameters`. `RTCAudioDevice` has it's own variable
> audio parameters like sample rate, channels  count and IO buffer
> duration. The audio parameters of `RTCAudioDevice` must be kept in sync
> with audio parameters applied to `webrtc::AudioDeviceBuffer`, otherwise
> audio playout and recording will be corrupted: audio is sent only
> partially over the wire and/or audio is played with artifacts.
> `ObjCAudioDeviceModule` reads current `RTCAudioDevice` audio parameters
> when playout or recording is initialized. Whenever `RTCAudioDevice`
> audio parameters parameters are changed, there must be a notification to
> `ObjCAudioDeviceModule` to allow it to reconfigure
> it's `webrtc::AudioDeviceBuffer`. The notification is performed
> via `RTCAudioDeviceDelegate` object, which is provided
> by `ObjCAudioDeviceModule` during initialization of `RTCAudioDevice`.
>
> # Threading
> `ObjCAudioDeviceModule` is stick to same thread between initialization
> and termination. The only exception is two IO functions invoked by SDK
> user code presumably from real-time audio IO thread.
> Implementation of `RTCAudioDevice` may rely on the fact that all the
> methods of `RTCAudioDevice` are called on the same thread between
> initialization and termination. `ObjCAudioDeviceModule` is also expect
> that the implementation of `RTCAudioDevice` will call methods related
> to notification of audio parameters changes and audio interruption are
> invoked on `ObjCAudioDeviceModule` thread. To facilitate this
> requirement `RTCAudioDeviceDelegate` provides two functions to execute
> sync and async block on `ObjCAudioDeviceModule` thread.
> Async block could be useful when handling audio session notifications to
> dispatch whole block re-configuring audio objects used
> by `RTCAudioDevice` implementation.
> Sync block could be used to make sure changes to audio parameters
> of ADB owned by `ObjCAudioDeviceModule` are notified, before interrupted
> playout/recording restarted.
>
> Bug: webrtc:14193
> Change-Id: I5587ec6bbee3cf02bad70dd59b822feb0ada7f86
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269006
> Reviewed-by: Henrik Andreasson <henrika@google.com>
> Commit-Queue: Yury Yarashevich <yura.yaroshevich@gmail.com>
> Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org>
> Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#37928}

Bug: webrtc:14193
Change-Id: I6e759a91664c1f6f60e862d72e45f75c51d7297a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273340
Auto-Submit: Andrey Logvin <landrey@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Andrey Logvin <landrey@google.com>
Owners-Override: Andrey Logvin <landrey@google.com>
Cr-Commit-Position: refs/heads/main@{#37931}
2022-08-29 13:03:52 +00:00
7d18a5a4c0 [DVQA] Add support for processing decoder errors correctly
Bug: b/243855428
Change-Id: I3f1a6fab0aecf0586b97076054a7e46f624397a1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/272966
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37930}
2022-08-29 12:30:22 +00:00
1a43f2c6c5 Add stub for build_overrides/partition_alloc.gni
Also roll chromium revision that required the fix

Bug: None
Change-Id: I66d54a4de763dba3ddadd9e1b4e89c52ab917934
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/273321
Auto-Submit: Andrey Logvin <landrey@google.com>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@google.com>
Cr-Commit-Position: refs/heads/main@{#37929}
2022-08-29 12:17:02 +00:00
2b9aaad58f ObjC ADM: record/play implementation via RTCAudioDevice [3/3]
# Overview
This CL chain exposes new API from ObjC WebRTC SDK to inject custom
means to play and record audio. The goal of CLs is achieved by having
additional implementation of `webrtc::AudioDeviceModule`
called `ObjCAudioDeviceModule`. The feature
of `ObjCAudioDeviceModule` is that it does not directly use any
of OS-provided audio APIs like AudioUnit, AVAudioEngine, AudioQueue,
AVCaptureSession etc. Instead it delegates communication with specific
system audio API to user-injectable audio device instance which
implements `RTCAudioDevice` protocol.
`RTCAudioDevice` is new API added to ObC WebRTC SDK in the CL chain.

# AudioDeviceBuffer
`ObjCAudioDeviceModule` does conform to heavy `AudioDeviceModule`
interface providing stubs for unrelated methods. It also implements
common low-level management of audio device buffer, which glues audio
PCM flow to/from WebRTC.
`ObjCAudioDeviceModule` owns single `webrtc::AudioDeviceBuffer` which
with the help of two `FineAudioBuffer` (one for recording and one for
playout) is exchanged audio PCMs with user-provided `RTCAudioDevice`
instance.
`webrtc::AudioDeviceBuffer` is configured to work with specific audio:
it has to know sample rate and channels count of audio being played and
recorded. These formats could be different between playout and
recording. `ObjCAudioDeviceModule` stores current audio  parameters
applied  to `webrtc::AudioDeviceBuffer` as fields of
type `webrtc::AudioParameters`. `RTCAudioDevice` has it's own variable
audio parameters like sample rate, channels  count and IO buffer
duration. The audio parameters of `RTCAudioDevice` must be kept in sync
with audio parameters applied to `webrtc::AudioDeviceBuffer`, otherwise
audio playout and recording will be corrupted: audio is sent only
partially over the wire and/or audio is played with artifacts.
`ObjCAudioDeviceModule` reads current `RTCAudioDevice` audio parameters
when playout or recording is initialized. Whenever `RTCAudioDevice`
audio parameters parameters are changed, there must be a notification to
`ObjCAudioDeviceModule` to allow it to reconfigure
it's `webrtc::AudioDeviceBuffer`. The notification is performed
via `RTCAudioDeviceDelegate` object, which is provided
by `ObjCAudioDeviceModule` during initialization of `RTCAudioDevice`.

# Threading
`ObjCAudioDeviceModule` is stick to same thread between initialization
and termination. The only exception is two IO functions invoked by SDK
user code presumably from real-time audio IO thread.
Implementation of `RTCAudioDevice` may rely on the fact that all the
methods of `RTCAudioDevice` are called on the same thread between
initialization and termination. `ObjCAudioDeviceModule` is also expect
that the implementation of `RTCAudioDevice` will call methods related
to notification of audio parameters changes and audio interruption are
invoked on `ObjCAudioDeviceModule` thread. To facilitate this
requirement `RTCAudioDeviceDelegate` provides two functions to execute
sync and async block on `ObjCAudioDeviceModule` thread.
Async block could be useful when handling audio session notifications to
dispatch whole block re-configuring audio objects used
by `RTCAudioDevice` implementation.
Sync block could be used to make sure changes to audio parameters
of ADB owned by `ObjCAudioDeviceModule` are notified, before interrupted
playout/recording restarted.

Bug: webrtc:14193
Change-Id: I5587ec6bbee3cf02bad70dd59b822feb0ada7f86
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/269006
Reviewed-by: Henrik Andreasson <henrika@google.com>
Commit-Queue: Yury Yarashevich <yura.yaroshevich@gmail.com>
Reviewed-by: Peter Hanspers <peterhanspers@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#37928}
2022-08-29 11:59:02 +00:00