Commit Graph

36455 Commits

Author SHA1 Message Date
0ac50b9dfd Move ownership of objects from channel_manager to connection_context
This is a preparatory step in deleting the ChannelManager class.

Also delete some declarations whose implementation was previously removed.

Bug: webrtc:13931
Change-Id: I8764c00fa696932e79fcfe17550ef2490d6a1ed1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262804
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36923}
2022-05-18 09:17:24 +00:00
0359ba2225 stats: add frame assembly time stats
implements a total frame assembly time statistic that measures the
cumulative time between the arrival of the first packet of a frame
(the lowest reception time) and the time all packets of the frame have
been received (i.e. the highest reception time)

This is similar to totalProcessingDelay
  https://w3c.github.io/webrtc-stats/#dom-rtcinboundrtpstreamstats-totalprocessingdelay
in particular with respect to only being incremented for frames that are being decoded but does not include the amount of time spent decoding the frame.

This statistic is useful for evaluating mechanisms like NACK and FEC
and gives some insight into the behavior of the pacer sending the
packets.
Note that for frames with just a single packet the assembly time will be zero. In order to calculate an average assembly time an additional frames_assembled_from_multiple_packets counter for frames with more than a single packet is added.

Currently this is a nonstandard stat so will only show up in webrtc-internals and not in getStats. Formally it can be defined as

totalAssemblyTime of type double
	Only exists for video. 	The sum of the time, in seconds, each video frame takes from the time the first RTP packet is received (reception timestamp) and to the time the last RTP packet of a frame is received.
    Given the complexities involved, the time of arrival or the reception timestamp is measured as close to the network layer as possible.

    This metric is not incremented for frames that are not decoded, i.e., framesDropped, partialFramesLost or frames that fail decoding for other reasons (if any). Only incremented for frames consisting of more than one RTP packet. The average frame assembly time can be calculated by dividing the totalAssemblyTime with framesAssembledFromMultiplePacket.

framesAssembledFromMultiplePacket of type unsigned long
	Only exists for video. It represents the total number of frames correctly decoded for this RTP stream that consist of more than one RTP packet.
	For such frames the totalAssemblyTime is incremented.

BUG=webrtc:13986

Change-Id: Ie0ae431d72a57a0001c3240daba8eda35955f04e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260920
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36922}
2022-05-18 09:16:10 +00:00
94c09169a2 Improve RTC event log parser.
(Support parsing TWCC which nack sequnce numbers greater than the last
one received. Don't silently drop unrecognized/malformed RTCP packets.)

Bug: webrtc:14078
Change-Id: I34a0deabfdb5f36b988919cfcc9159197435756c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262800
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36921}
2022-05-18 09:14:40 +00:00
2f3168ff38 peerconnection: reject content if there are no common media codecs
for video dealing with both the case where there is no common media
codec as well as only a red/ulpfec/flexfec codec in common for video
and only RED/CN in common for audio

BUG=webrtc:4957,webrtc:14069

Change-Id: I1c888b4f77199aade8122051c31b690dc2fd5925
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262642
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36920}
2022-05-18 09:00:00 +00:00
cde992ddad Add support for VP9 configuration through scalability mode.
Bug: webrtc:13960
Change-Id: Ia930647b15f624a4d10d8d335519b69ffdae6636
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260983
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36919}
2022-05-18 08:21:00 +00:00
15a73be295 Update apprtc example code to support macos 10.13
It currently blocks chromium to webrtc roll after https://crrev.com/c/3646050

Bug: b/232899082
Change-Id: I87e178d91037d844fc98a28491bdfe69fa3bc9b4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262802
Auto-Submit: Andrey Logvin <landrey@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Andrey Logvin <landrey@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36918}
2022-05-18 07:44:20 +00:00
0601db9a48 Rename ReceiveStream to ReceiveStreamInterface
Bug: webrtc:7484
Change-Id: I41176a66b8399f6c8cf568630f2808eb95cf6247
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262767
Auto-Submit: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36917}
2022-05-18 07:26:50 +00:00
f92a0846c3 Fix build in C++20 mode.
Structs with user-declared constructors are not aggregates and cannot
be initialized with designated initializers.  Remove declarations that
don't actually affect anything.

Bug: chromium:1284275
Change-Id: Ib45ea334d7be28bfa7bbce132985612f0e6ecd10
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262820
Auto-Submit: Peter Kasting <pkasting@chromium.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36916}
2022-05-18 06:47:30 +00:00
79dc0a223e Update WebRTC code version (2022-05-18T04:01:44).
Bug: None
Change-Id: Ib10b8b8236ab5905ed6c524d058a39a356eebebd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262732
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@{#36915}
2022-05-18 05:16:30 +00:00
c5aa5bea49 Delete deprecated VP8Encoder::Create function
Bug: None
Change-Id: I42e5d846d3d012f8b85eede743202b84239ceef1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262764
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36914}
2022-05-17 13:23:24 +00:00
a9f10c8189 Make fake decode from file produce 10 ms comfort noise frames.
This is to more accurately simulate Opus CNG.

Bug: None
Change-Id: I3244d88e1f7410190551b6fa24cdd08599b5771e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262661
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36913}
2022-05-17 13:11:34 +00:00
4da317f0bb Remove complexity parameter from video codec specific structs.
Now only using the complexity from the main VideoCodec settings.

Bug: webrtc:13694
Change-Id: I5a29df0fac0c0686bf5ea0b677f8946d23ef9888
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262762
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36912}
2022-05-17 12:45:04 +00:00
88af20356f Use ProbeClusterConfig in BitrateProber from GoogCC
Instead of using field trials in BitrateProber for probe duration, use values provided in ProbeClusterConfig from GoogCC.
Field trials are instead read in ProbeController.

To avoid having to do a thread jump for every ProbeClusterConfig, RtpPacketPacer interface is changed to RtpPacketPacer::CreateProbeClusters(std::vector<ProbeClusterConfig>

Deprecates field trial  "WebRTC-Bwe-ProbingConfiguration"

Change-Id: I3991e4b54770601855a3af2d6a16678f11d41c31
Bug: webrtc:14027
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261265
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36911}
2022-05-17 12:29:25 +00:00
641a1b11b6 Adopt absl::string_view in call/
Bug: webrtc:13579
Change-Id: Ib616eb3372da341fafb55c23038182751b9da5a2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262780
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Ali Tofigh <alito@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36910}
2022-05-17 12:00:45 +00:00
d01e692e01 Fix flakiness of CheckLogLevelUpdateStatsEmpty.
Bug: b/232719223
Change-Id: I26bdb10bb7bae89f8a99b8c4db14609ae9bfda50
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262620
Reviewed-by: Hanna Silen <silen@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36909}
2022-05-17 11:57:35 +00:00
39bc030e0b Delete deprecated functions in RempoteNtpTimeEstimator
Bug: webrtc:13757
Change-Id: Ie9cdb41de956df1b6877c8b86fd1829fdcd35043
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262761
Reviewed-by: Erik Språng <sprang@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36908}
2022-05-17 11:12:25 +00:00
1331c1821c Reland: Update local_ssrc without needing to recreate video streams.
This is comparable to this change done previously for for audio streams:
https://webrtc-review.googlesource.com/c/src/+/222042

This is a reland of commit 16a8b25d809e4d4982f9fc4b4e973acd506b8bca
with an additional fix in Patchset 2. Another problem turned out to be
in RTCPReceiver, which is fixed in:
https://webrtc-review.googlesource.com/c/src/+/262663

Bug: webrtc:11993
Change-Id: I63c7cf62a6dd50f88b491fea3ba866697552ef5f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262665
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36907}
2022-05-17 10:59:54 +00:00
f47e941dbd Remove deprecated PacingController constructor
Bug: webrtc:10809
Change-Id: Ic913bd81dc5d043e4307f3b7f80ecacc78852d7f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262760
Auto-Submit: Erik Språng <sprang@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36906}
2022-05-17 09:59:14 +00:00
8814dfd124 Remove RTCPReceiver::main_ssrc_.
RTCPReceiver::main_ssrc_ and local_media_ssrc() represent the same
value but could get out of sync when `set_media_ssrc()` was called.

Instead of using main_ssrc_, just use the local_media_ssrc() accessor.

Bug: webrtc:11993
Change-Id: I2b034287e6b6025d9b0d2affa391a168896a614b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262663
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36905}
2022-05-17 09:28:54 +00:00
969c1356af Adopt absl::string_view in system_wrappers/
Bug: webrtc:13579
Change-Id: Id0e6515c63a3c9aa6d7effef7a2bd8b5ef35af09
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262245
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Ali Tofigh <alito@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Xavier Lepaul‎ <xalep@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36904}
2022-05-17 08:23:24 +00:00
2e521f5a25 Update WebRTC code version (2022-05-17T04:04:40).
Bug: None
Change-Id: I323023722ba3d5d467439a57cc23cb9f16b08b95
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262724
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@{#36903}
2022-05-17 05:17:46 +00:00
b3fb240785 Roll chromium_revision 607d61e739..99a40fa7f7 (1003703:1003838)
Change log: 607d61e739..99a40fa7f7
Full diff: 607d61e739..99a40fa7f7

Changed dependencies
* src/build: bdfae14b09..4b864c708c
* src/ios: 60ba7494de..d534abaffc
* src/testing: c5e0fd55f4..060c3c7ca1
* src/third_party: 507cc33701..f4a34bfe66
* src/third_party/androidx: GFFcbQiZc4RpAtuTiDatE9n-TscfDIeynLmz84iC0yUC..rDwcNUcalxE4oDXQjUyJUWv381pDqXoZNHb_1Dgv2qcC
* src/third_party/perfetto: 378c48e919..c585628f45
* src/third_party/turbine: FJ-IOPRGQsHUZwVeYmVw_idRk5mUUP6_Uj2i6mKQlEMC..aSG-acwWsASjZaTfSzYcOuM9qoD6S_o3JL6iIFslVdUC
* src/tools: 92ca313c4f..442185b165
DEPS diff: 607d61e739..99a40fa7f7/DEPS

No update to Clang.

BUG=None

Change-Id: Iaa2ade706b8e4a57c04ef1fa73f07ece105f7e78
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262603
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@{#36902}
2022-05-16 18:37:24 +00:00
43feb9e5a2 Check PipeWire server version when dropping single modifier
PipeWire server in older versions would mark the negotiation as
finished and start creating buffers.

Upstream bug: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1732

Bug: webrtc:13429
Change-Id: I7194e6672716d7fef1c2aadc40d3acf55cb282a2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262621
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Alexander Cooper <alcooper@chromium.org>
Cr-Commit-Position: refs/heads/main@{#36901}
2022-05-16 18:30:34 +00:00
6aa5cea4d3 Remove periodic mode from PacingController.
This completes the removal of the legacy pacer.

Bug: webrtc:10809
Change-Id: I8962ad56aa673f46b2c0e2cf8a5630e2c9942c92
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262421
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36900}
2022-05-16 15:56:34 +00:00
c782cf883c Introduce a stable playout delay mode for NetEq.
A packet arrival history is used to store the timing of incoming packets and tracks the earliest and latest packets by taking the difference between rtp timestamp and arrival time. The history is windowed to 2 seconds by default. The packet arrival history will replace the relative arrival delay tracker in a follow up cl.

The playout delay is estimated by taking the difference between the current playout timestamp and the earliest packet arrival in the history. This method works better when DTX is used compared to the buffer level filter that it replaces.

The threshold for acceleration is changed to be the maximum of the target delay and the maximum packet arrival delay in the history. This prevents any acceleration immediately after an underrun and gives some time to adapt the target delay to new network conditions.

The logic when to decode the next packet after a packet loss is also changed to do concealment for the full loss duration unless the delay is too high.

The new mode is default disabled and can be enabled using a field trial.

Bug: webrtc:13322,webrtc:13966
Change-Id: Idfa0020584591261475b9ca350cc7c6531de9911
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/259820
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36899}
2022-05-16 15:39:14 +00:00
35f4b4c755 Remove more trampoline functions from ChannelManager
Bug: webrtc:13931
Change-Id: I3a1b48aeffd91ee6abaf78eb1ec69c1653b210e6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262640
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36898}
2022-05-16 15:12:27 +00:00
2698353d43 Disable quality scaling if multiple spatial layers are requested for VP9
VP9 automaticResizeOn is disabled if more than one spatial layer is configured via scalability mode.

Bug: webrtc:13960
Change-Id: I7c6351bca6d2f32bcc7391894e8dcc9e74ca2050
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261315
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36897}
2022-05-16 15:11:24 +00:00
dab50c6fe8 Revert "Use ADM internal state for init state check."
This reverts commit 0e2221eb2f02ed950f4fd9c7fea40b382ea0a0c8.

Reason for revert: Speculative revert, breaks downstream.

Original change's description:
> Use ADM internal state for init state check.
>
> When ADM is terminated and its state requires reinitialized, VoipCore::initialized_ field will falsely skip required reinitializing.
>
> Bug: webrtc:14054
> Change-Id: Ibeb4987a7e9763b8e40926acc4d7eaabde7a3478
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261924
> Reviewed-by: Per Åhgren <peah@webrtc.org>
> Reviewed-by: Tim Na <natim@google.com>
> Commit-Queue: Tim Na <natim@google.com>
> Cr-Commit-Position: refs/heads/main@{#36893}

Bug: webrtc:14054
Change-Id: I1fa0a1ff440b9619aba60ec25970ce88a67739db
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262660
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Owners-Override: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36896}
2022-05-16 14:08:04 +00:00
6928f4ccc6 Roll chromium_revision b16b91b21b..607d61e739 (1003283:1003703)
Change log: b16b91b21b..607d61e739
Full diff: b16b91b21b..607d61e739

Changed dependencies
* src/base: dae121b08b..8db0ea4764
* src/build: aa9b88051d..bdfae14b09
* src/buildtools/third_party/libc++abi/trunk: f8b9fcc8e2..e112e5ec5b
* src/buildtools/third_party/libunwind/trunk: cd5b90c8ef..cf88e03ee0
* src/ios: af3328a730..60ba7494de
* src/testing: 6eff384607..c5e0fd55f4
* src/third_party: 0140ab632d..507cc33701
* src/third_party/androidx: mt-ZF-6_HFdvpVXuaVQwcn_VAafyKXPqDwTExLwF_iwC..GFFcbQiZc4RpAtuTiDatE9n-TscfDIeynLmz84iC0yUC
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/925e601986..25ac622b73
* src/third_party/depot_tools: aa7d7e45cd..f8300fba9d
* src/third_party/gtest-parallel: 11cce5c287..38191e2733
* src/third_party/harfbuzz-ng/src: 6454cec085..acdab17ed3
* src/third_party/perfetto: d09ebb9e2b..378c48e919
* src/tools: 222207725f..92ca313c4f
* src/tools/luci-go: git_revision:93b14d0f421647ad3bebf0ab4261c38f78bd1a8d..git_revision:29b908616bc920e58bf384d1e47b91b6cf9188b8
* src/tools/luci-go: git_revision:93b14d0f421647ad3bebf0ab4261c38f78bd1a8d..git_revision:29b908616bc920e58bf384d1e47b91b6cf9188b8
DEPS diff: b16b91b21b..607d61e739/DEPS

No update to Clang.

BUG=None

Change-Id: Ie831c83de042dcc699e397447490a2ef5dd7bb53
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262583
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@{#36895}
2022-05-16 12:32:14 +00:00
d3dc80a31e Update gtest-parallel to the latest patch.
Bug: b/232753887
Change-Id: I8db137b8339b94b51a55aaaa18a755ebdddf1bcd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262641
Reviewed-by: Christoffer Jansson <jansson@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#36894}
2022-05-16 12:04:14 +00:00
0e2221eb2f Use ADM internal state for init state check.
When ADM is terminated and its state requires reinitialized, VoipCore::initialized_ field will falsely skip required reinitializing.

Bug: webrtc:14054
Change-Id: Ibeb4987a7e9763b8e40926acc4d7eaabde7a3478
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261924
Reviewed-by: Per Åhgren <peah@webrtc.org>
Reviewed-by: Tim Na <natim@google.com>
Commit-Queue: Tim Na <natim@google.com>
Cr-Commit-Position: refs/heads/main@{#36893}
2022-05-14 02:17:45 +00:00
c92ee5f3c3 Revert "Update local_ssrc without needing to recreate video streams."
This reverts commit 16a8b25d809e4d4982f9fc4b4e973acd506b8bca.

Reason for revert: Checking if this is blocking the Chromium autoroller.

Original change's description:
> Update local_ssrc without needing to recreate video streams.
>
> This is comparable to this change done previously for for audio streams:
> https://webrtc-review.googlesource.com/c/src/+/222042
>
> Bug: webrtc:11993
> Change-Id: Ic953f816a8f7c56d1c3dc9a16d85bef3696a663d
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261960
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#36876}

Bug: webrtc:11993
Change-Id: I3a8d2f6a7e89b6784754d8e891a4e01479807c2d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262422
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#36892}
2022-05-13 22:30:44 +00:00
9d80fb7d3e Roll chromium_revision cfad8bb245..b16b91b21b (1003145:1003283)
Change log: cfad8bb245..b16b91b21b
Full diff: cfad8bb245..b16b91b21b

Changed dependencies
* src/base: 19e6b0439c..dae121b08b
* src/build: 1507aa67e3..aa9b88051d
* src/ios: 411fd095b3..af3328a730
* src/testing: 22cd2252ca..6eff384607
* src/third_party: b16f73b5b1..0140ab632d
* src/third_party/androidx: 4Ha7eDDth3WsPxnrW_ERVwW58mNuvLt8WNPyhJ_DpAMC..mt-ZF-6_HFdvpVXuaVQwcn_VAafyKXPqDwTExLwF_iwC
* src/third_party/depot_tools: 7d20ae05d5..aa7d7e45cd
* src/third_party/libaom/source/libaom: https://aomedia.googlesource.com/aom.git/+log/ef14518388..a1d676b44f
* src/tools: b5b49a6aae..222207725f
DEPS diff: cfad8bb245..b16b91b21b/DEPS

No update to Clang.

BUG=None

Change-Id: I4bf3697f25370f352db1cff77b4ffac93603d78f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262405
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@{#36891}
2022-05-13 20:47:15 +00:00
f3f3a61167 Remove legacy PacedSender.
The new TaskQueuePacedSender has been default-on in code since M97, and
there are no further usages of it that I can find. Let's clean this up!

The PacingController and associated tests will be cleaned up in a
follow-up cl.

Bug: webrtc:10809
Change-Id: I0cb888602939add953415977ee79ff0b3878fea5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/258025
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36890}
2022-05-13 20:31:06 +00:00
6a979149e4 Roll chromium_revision c2d571699f..cfad8bb245 (1003044:1003145)
Change log: c2d571699f..cfad8bb245
Full diff: c2d571699f..cfad8bb245

Changed dependencies
* src/base: 164845aba1..19e6b0439c
* src/build: a11973d87d..1507aa67e3
* src/ios: 1db990f578..411fd095b3
* src/testing: 2c3dd587c4..22cd2252ca
* src/third_party: ed2dd68e52..b16f73b5b1
* src/third_party/androidx: lgU7MqXGbA9T3_l-cHfgKoUImTeSXU2y6zGL1fc65poC..4Ha7eDDth3WsPxnrW_ERVwW58mNuvLt8WNPyhJ_DpAMC
* src/third_party/perfetto: f7b904a467..d09ebb9e2b
* src/tools: 1d52d64c83..b5b49a6aae
DEPS diff: c2d571699f..cfad8bb245/DEPS

No update to Clang.

BUG=None

Change-Id: I91777c22bee8cad89e37e2b9ee67dfdb9f2598c3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262403
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@{#36889}
2022-05-13 16:43:04 +00:00
f7fc71da44 dcsctp: Cleanup Metrics
This CL first restricts Metrics to be retrievable when the socket is
created. This avoids having most fields as optional and makes it
easier to add more metrics.

Secondly, the peer implementation is moved into Metrics.

Bug: webrtc:13052
Change-Id: I6cb53eeef3f84ac34f3efc883853338f903cc758
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262256
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Victor Boivie <boivie@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36888}
2022-05-13 15:11:34 +00:00
d14e8894fc Adopt absl::string_view in modules/rtp_rtcp
Bug: webrtc:13579
Change-Id: Ic4e1431bedc69492358cb2e3749b50a941306f44
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262250
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Ali Tofigh <alito@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36887}
2022-05-13 15:01:18 +00:00
76d84f122e Adopt absl::string_view in common_audio/
Bug: webrtc:13579
Change-Id: I7f9beb34f92d1ea587eda87d1222774ce944a625
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262249
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Ali Tofigh <alito@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36886}
2022-05-13 15:00:14 +00:00
63ee39d0be Revert "Add a prefix for objc category."
This reverts commit 181ea6e414c5982015ce161e6368120be3658ec4.

Reason for revert: Breaks downstream project. Kári will help to land it next week.

Original change's description:
> Add a prefix for objc category.
>
> According to the Google Objective-C style [1], category names should
> start with an appropriate prefix. WebRTC has some category definitions
> for system interfaces, but it doesn't use prefixes.
>
> $ otool -ov WebRTC.framework/WebRTC | grep -E "^[0-9a-z]{16} 0x[0-9a-z]+ __OBJC_._CATEGORY" | grep -v "_RTC"
> 0000000002160840 0x217c3c0 __OBJC_$_CATEGORY_UIDevice_$_H264Profile
> 0000000002160850 0x21808b8 __OBJC_$_CATEGORY_AVCaptureSession_$_DevicePosition
> 0000000002160858 0x2180968 __OBJC_$_CATEGORY_NSString_$_StdString
> 0000000002160860 0x21809c8 __OBJC_$_CATEGORY_NSString_$_AbslStringView
>
> To avoid conflicts, prefix the names and methods of those categories.
> Also remove sdk/objc/Framework/Classes/Common/NSString+StdString.h as
> it is not used by any other files.
>
> [1] https://google.github.io/styleguide/objcguide.html#category-naming
>
> Bug: webrtc:13884
> Change-Id: I2cf2742af198ab4e0bfb15c0476d72971e50ceee
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262341
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
> Commit-Queue: Daniel.L (Byoungchan) Lee <daniel.l@hpcnt.com>
> Reviewed-by: Artem Titov <titovartem@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#36880}

Bug: webrtc:13884
Change-Id: I85257088e4a3a62e01ff925ab5e77af83b078ef3
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262420
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Auto-Submit: Artem Titov <titovartem@webrtc.org>
Owners-Override: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36885}
2022-05-13 14:47:54 +00:00
059548919b Enable VP8 configuration via scalability mode
Bug: webrtc:13959
Change-Id: I16054506ca4086767323443fb9b1e623224e234d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/258791
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36884}
2022-05-13 13:53:44 +00:00
fb9ae767aa Reland "Run iOS tests on multiple shards."
This is a reland of commit 5a71f1585875a9ef80b79d9f247d1e21319a17d6

Original change's description:
> Run iOS tests on multiple shards.
>
> Bug: b/230824012
> Change-Id: I6d27a8ed2c07eb76972b3bbe3679f6346ba58e06
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261306
> Reviewed-by: Christoffer Jansson <jansson@webrtc.org>
> Commit-Queue: Jeremy Leconte <jleconte@google.com>
> Cr-Commit-Position: refs/heads/main@{#36796}

Bug: b/230824012
Change-Id: I4a8627e87a6f22953238a28a714af3a97de065b9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261724
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Commit-Queue: Jeremy Leconte <jleconte@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36883}
2022-05-13 13:49:44 +00:00
807328fec7 Move frame drop config to VideoCodec and VideoEncoderConfig.
Intend to delete corresponding codec-specific settings in a followup.

Bug: webrtc:6883
Change-Id: I78ab07729a5aee1055f80d39d8f7289beb6721e1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262244
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36882}
2022-05-13 13:40:14 +00:00
8f44ae4fa5 Remove dead code in cricket::FakeVideoRenderer
Remove unused accessors
move helper implementation into .cc file

Bug: None
Change-Id: Iccd877180901b278af4800f681669089b8a046ce
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262254
Commit-Queue: Niels Moller <nisse@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36881}
2022-05-13 13:36:35 +00:00
181ea6e414 Add a prefix for objc category.
According to the Google Objective-C style [1], category names should
start with an appropriate prefix. WebRTC has some category definitions
for system interfaces, but it doesn't use prefixes.

$ otool -ov WebRTC.framework/WebRTC | grep -E "^[0-9a-z]{16} 0x[0-9a-z]+ __OBJC_._CATEGORY" | grep -v "_RTC"
0000000002160840 0x217c3c0 __OBJC_$_CATEGORY_UIDevice_$_H264Profile
0000000002160850 0x21808b8 __OBJC_$_CATEGORY_AVCaptureSession_$_DevicePosition
0000000002160858 0x2180968 __OBJC_$_CATEGORY_NSString_$_StdString
0000000002160860 0x21809c8 __OBJC_$_CATEGORY_NSString_$_AbslStringView

To avoid conflicts, prefix the names and methods of those categories.
Also remove sdk/objc/Framework/Classes/Common/NSString+StdString.h as
it is not used by any other files.

[1] https://google.github.io/styleguide/objcguide.html#category-naming

Bug: webrtc:13884
Change-Id: I2cf2742af198ab4e0bfb15c0476d72971e50ceee
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262341
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Daniel.L (Byoungchan) Lee <daniel.l@hpcnt.com>
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36880}
2022-05-13 13:20:34 +00:00
9437529d4b Determine scalability mode if not explicilty set for AV1.
Bug: none
Change-Id: I86298b8a57300ed1d824cf6ba8f5daeec6af7315
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262242
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36879}
2022-05-13 12:06:44 +00:00
c8a6fb2bb8 Remove objc tests from rtc_unittests and move tests to sdk_unittests
The tests in rtc_unittests_objc are old gtest based tests and
The tests in sdk_unittests are XCTest based tests.
The objc tests in rtc_unittest are causing problems [1],
so I think it's time to combine the two types of objc tests.

Renaming the files to match the existing sdk_unittests and
removing the use of gtest helper functions (eg, EXPECT_EQ)
are planned for follow-up CLs.

[1] https://webrtc-review.googlesource.com/c/src/+/261724/9

Bug: webrtc:8382
Change-Id: I9308b35f654c4479c9df72bf7cd7f4032e267eb2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262380
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Daniel.L (Byoungchan) Lee <daniel.l@hpcnt.com>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36878}
2022-05-13 11:59:06 +00:00
cbb8fb8337 Roll chromium_revision 1263031d3d..c2d571699f (1002927:1003044)
Change log: 1263031d3d..c2d571699f
Full diff: 1263031d3d..c2d571699f

Changed dependencies
* src/base: cb32864fd3..164845aba1
* src/build: 4e0a6040c6..a11973d87d
* src/ios: d64d4692d1..1db990f578
* src/testing: 998bd983ea..2c3dd587c4
* src/third_party: 34418ae20c..ed2dd68e52
* src/third_party/androidx: PNBrshbagcx1GOHkHBhYzkuMPFqjoNIacmyt8tKhmfwC..lgU7MqXGbA9T3_l-cHfgKoUImTeSXU2y6zGL1fc65poC
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/6240594199..925e601986
* src/third_party/depot_tools: 8b70765431..7d20ae05d5
* src/tools: 5644304ee2..1d52d64c83
* src/tools/luci-go: git_revision:9193dc92fa28cd5faf6b2d7c6e0a7f2ec174898e..git_revision:93b14d0f421647ad3bebf0ab4261c38f78bd1a8d
* src/tools/luci-go: git_revision:9193dc92fa28cd5faf6b2d7c6e0a7f2ec174898e..git_revision:93b14d0f421647ad3bebf0ab4261c38f78bd1a8d
DEPS diff: 1263031d3d..c2d571699f/DEPS

No update to Clang.

BUG=None

Change-Id: I7f291fa55542d9f0433df1f4c020f997171cc2b3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262400
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@{#36877}
2022-05-13 11:10:44 +00:00
16a8b25d80 Update local_ssrc without needing to recreate video streams.
This is comparable to this change done previously for for audio streams:
https://webrtc-review.googlesource.com/c/src/+/222042

Bug: webrtc:11993
Change-Id: Ic953f816a8f7c56d1c3dc9a16d85bef3696a663d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/261960
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36876}
2022-05-13 10:08:54 +00:00
d97af7b1b9 Clean loss based bwe 2.
This is for cleaning loss based bwe v2 implementation according to some comments from https://webrtc-review.googlesource.com/c/src/+/261240.

Bug: webrtc:12707
Change-Id: I2cb278f136cddcd0eeb2c5e4c319a9cc6aab94a0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262251
Commit-Queue: Diep Bui <diepbp@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#36875}
2022-05-13 10:07:19 +00:00
e5fb8512b0 Update to non-deprecated constants
When Apple introduced Swift, they renamed all the AppKit Objective-C
constants to have a shared prefix for ease of bridging, and deprecated
all the old names. These new names were introduced in the macOS 10.12
and 10.14 SDKs, but compile down to the same constant values so they
can be deployed all the way back to 10.0.

Bug: chromium:1322548
Change-Id: Ib3cacbe493e97ca43dd180047eacbd2866d70016
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/262180
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Mark Foltz <mfoltz@chromium.org>
Auto-Submit: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/main@{#36874}
2022-05-13 10:06:04 +00:00