39577 Commits

Author SHA1 Message Date
Andreas Pehrson
dcf600d7a5 In VideoCaptureDS::{Start|Stop}Capture do not lock
Sequence- and RaceCheckers ensure thread safety, and show that these
locks protect nothing.

Bug: webrtc:15181
Change-Id: I7c26cd9aea5fa72ad9435de5ec1b9135ac22b1e8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/305649
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40345}
2023-06-26 10:13:33 +00:00
Tony Herre
fc68f1f7d9 Stop using TransformableAudioFrameInterface::GetHeader() within webrtc
Instead switch to specific getters, or methods only defined on specific implementations rather than part of the public API.

Once uses are removed from Chromium, I'll mark GetHeader() deprecated
and eventually remove it.

Bug: chromium:1456628
Change-Id: I19b80489b3a0322c201e24994494cfbb742ee13e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309780
Commit-Queue: Tony Herre <herre@google.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40344}
2023-06-26 10:07:50 +00:00
Mirko Bonadei
589ee5ae62 Add nogncheck to protobuf_utils.h #include.
GN dependency checker doesn't run the preprocessor, so when the build
is configured with `rtc_enable_protobuf = false` it complains that
protobuf headers don't have a dependency (since the dependency is not
added here [1]).

It is unclear why this problem didn't show up before [2].

[1] - https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/rtc_base/BUILD.gn;l=26-29;drc=45afbc1e81449609cea181e410fa6875b00ec151
[2] - https://webrtc-review.googlesource.com/c/src/+/309262

Bug: None
Change-Id: I139fe3a9804209f0ca39a5cccce8fd4f3ae062c5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/310320
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Auto-Submit: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40343}
2023-06-26 08:17:20 +00:00
Mirko Bonadei
c9d96dfebe Temporary set mac_deployment_target to 10.13
This needs to be rolled back as soon as the deprecated declarations
diagnostic errors get fixed.

Bug: b/288827308
Change-Id: I9584e0f156b0bd0ba40809d43e1edd7ba9ff5674
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/310300
Auto-Submit: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40342}
2023-06-26 07:57:18 +00:00
Jeremy Leconte
b55c63b8b5 Explicitly cast to before passing it with a format string.
Change-Id: Ie479c16f667b0f714071530622ac4d2a4fc21a00
Bug: b/287955968
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/310120
Reviewed-by: Alexander Kornienko <alexfh@google.com>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Auto-Submit: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#40341}
2023-06-26 07:35:41 +00:00
webrtc-version-updater
d0c86830d0 Update WebRTC code version (2023-06-23T04:02:24).
Bug: None
Change-Id: I117d037e35f9d759cbc826d54338815363d33ab2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/310025
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@{#40340}
2023-06-23 05:47:58 +00:00
Danil Chapovalov
8beb6314ef Pass and process capture time through SendPacketObserver with Timestamp type
Bug: webrtc:13757
Change-Id: Icc9f650590640f402ca9004171bbddaf918c78d4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308682
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40339}
2023-06-22 17:16:41 +00:00
Jeremy Leconte
93008bde6c DefaultVideoQualityAnalyzer::GetCpuUsagePercent is const.
Change-Id: I46216217ccfcd58775bb9e872ad5d8c7ebc80ead
Bug: b/272781101
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/310000
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#40338}
2023-06-22 16:21:40 +00:00
henrika
58e97b8600 Removes AllowWgcDesktopCapturer feature flag
This flag is no longer used in Chrome and can now be removed.

Bug: chromium:1314868
Change-Id: Id91b3352dc7ec0543d54894cc206a6e0c7667e9e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309960
Commit-Queue: Alexander Cooper <alcooper@chromium.org>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Cr-Commit-Position: refs/heads/main@{#40337}
2023-06-22 16:07:51 +00:00
Artem Titov
00a8576a67 FrameGeneratorCapturer: don't generate video before Start is called
Bug: b/272350185
Change-Id: I3c264df49e952c8f852feb08607b8d4e320b15fb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309860
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40336}
2023-06-22 14:00:22 +00:00
Andreas Pehrson
eee10391ca In VideoCaptureImpl and subclasses add thread and lock annotations
This annotates all unannotated members in VideoCaptureImpl and its
subclasses with either of:
- api_checker_: access on the api thread only
- capture_checker_: access in callbacks/on the capture thread while
                    capture is active, on the api thread otherwise
- a Mutex if it is already protected by it

Bug: webrtc:15181
Change-Id: I5084e7752a4716c29b85a9b403a88696f66d811f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/305647
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40335}
2023-06-22 13:34:40 +00:00
Philipp Hancke
656817c485 Remove default "unknown" encoderImplementation/decoderImplementation
which means this will not show up in getStats inbound-rtp/outbound-rtp
until the encoder/decoder is known. This has implications in particular
for inbound-rtp where the value is currently "unknown" until video
frames have been received.

This is safe to change as the previous change to gate
decoderImplementation behind getUserMedia access already broke
the assumption that the field is always string.

BUG=webrtc:14906

Change-Id: Ie6040ada3656e80f792c0c32c1b86ad1d6609d3c
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/293600
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#40334}
2023-06-22 11:49:58 +00:00
Philipp Hancke
423faa6067 stats: do not expose dataChannelIdentifier before it is set
filtering out the -1 value as it is done for "legacy" stats.
Also change the protocol and don't use "udp" and "tcp" which are misleading since the datachannel protocol is user-supplied.

BUG=webrtc:15071

Change-Id: I45d735fcf30144969630f5b8a91b40f12585bbfd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300483
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40333}
2023-06-22 09:28:40 +00:00
Tommi
eec1810760 Avoid touching channel after OnSctpDataChannelClosed
Bug: chromium:1454086
Change-Id: I39573b706c4031d091c45a182b13cb3b2dba6233
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309920
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40332}
2023-06-22 09:13:29 +00:00
webrtc-version-updater
afa0f22070 Update WebRTC code version (2023-06-22T04:01:55).
Bug: None
Change-Id: Icf46ddbe29eede8bf68282fd9a966b782b31b762
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309882
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@{#40331}
2023-06-22 05:45:49 +00:00
henrika
c3a74024bf Splits AllowWgcDesktopCapturer into AllowWgc[Window/Screen]Capturer flags
This CL allows the users to now enable/disable WGC capturing support
for Window and Screen sharing independently.

Bug: chromium:1314868
Change-Id: Ieeb15539434dac2caf29c515aa7c5dbb7abcc5df
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309560
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40330}
2023-06-21 19:25:23 +00:00
Artem Titov
5246ae20a2 Fix TestVideoCapturer and subclasses to support pause/resume video
Bug: b/272350185
Change-Id: I8e2e1a833430f78627ec6301ea23f2f8337a01ca
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309622
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40329}
2023-06-21 17:46:33 +00:00
Harald Alvestrand
84fdf990e8 Convert Media*Channel to contain a webrtc::Transport
Media*Channel objects used to subclass webrtc::Transport.
This was not an optimal design. This CL makes the transport
a member variable of MediaChannelUtil.

Bug: None
Change-Id: I85d33cc1b32b931e563b7bb2d277f1c512600831
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309800
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40328}
2023-06-21 16:13:55 +00:00
Rasmus Brandt
0510463439 Enable RttMult by default.
This feature has had positive impact in downstream experiments, so we should enable it by default. It will be kept around as a kill switch for a while though.

Bug: webrtc:15260
Change-Id: Ibfd25f5be124f65cd4360ae76f7022bb46f65301
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309781
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40327}
2023-06-21 14:17:11 +00:00
Florent Castelli
d20bbc4a15 Remove CreateMediaChannel calls from webrtc_video_engine_unittest
Bug: webrtc:13931
Change-Id: I3d54741dffb337de9db80efa81b24396b96245f1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309621
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40326}
2023-06-21 13:21:16 +00:00
Philipp Hancke
17e8a5cc7d stats: implement flexfec fecBytesReceived stats for FlexFEC
specified in https://github.com/w3c/webrtc-stats/pull/762
and take FlexFEC into account for receive statistics.

BUG=webrtc:15250

Change-Id: Id85775ab1f29487d5b8bf478da6e22071005901a
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/294881
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#40325}
2023-06-21 13:04:31 +00:00
Sergey Silkin
d7c7b07c5d Account for codec type when accessing codec specific settings
Bug: none
Change-Id: Ic60414d7a8cd2e40f8c3855fd4ceed09ea4d7c07
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/305784
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40324}
2023-06-21 11:26:04 +00:00
Florent Castelli
4e434c313e Remove MediaChannel usage from webrtc_video_engine_unittest
Bug: webrtc:13931
Change-Id: Ie45a25c6b204b38b749381ef5e9403cf036b8126
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309660
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40323}
2023-06-21 10:10:56 +00:00
Florent Castelli
ee97e6ad88 Move GetSendCodec() to MediaSendChannelInterface
This allows the voice send channels to share the method definition.

Bug: webrtc:15214
Change-Id: Ie0cc23f3694eeb8322a9ea7328a8d56fa7571c95
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309600
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40322}
2023-06-21 10:00:56 +00:00
Hans Wennborg
d1780836f4 Fix incorrect use of scoped enumerations in format strings
Scoped enums do not get automatically promoted to their underlying type,
so these uses have undefined behavior and Clang recently started warning
about it.

Bug: chromium:1456289
Change-Id: I9cf4e5a68378930a3bf7d8ac7b0a21eaf0d12670
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309520
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Auto-Submit: Hans Wennborg <hans@chromium.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40321}
2023-06-21 09:16:11 +00:00
Jeremy Leconte
c4e0254909 Fix capture_clock_offset_updater_ data race.
Change-Id: I1b84810ea19c8bf24ec49d7fb69e954d18759e37
Bug: b/288066973
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309680
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#40320}
2023-06-21 07:08:26 +00:00
Jesús de Vicente Peña
f80cf81435 Changing the pre echo configuration default.
Bug: webrtc:14205
Change-Id: I17add3bf19c599f170ffe98d0da0a561794591c1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309481
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40319}
2023-06-20 14:46:44 +00:00
Björn Terelius
ff58aed678 Process events with the same timestamp in a defined order.
As before, events are processed primarily in timestamp order.
This CL adds a heuristic to break ties for events with the same timestamp.

- Roughly speaking, configs and connectivity events are processed first, followed by incoming packets, then BWE updates, then other (general) events and finally outgoing packets and ALR events.

- Among RTP packets, transport sequence number is used to break ties.

- The insertion order (into the EventProcessor) is used as a last resort.

Bug: b/282153758
Change-Id: I914e4500ca63e1a8754766d1833a7b32f6a38176
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308140
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40318}
2023-06-20 14:21:17 +00:00
Philipp Hancke
64d384ff29 Fix logging of unsupported video type
BUG=webrtc:15257

Change-Id: I9b51ed39d6010f49f307a40b20eec801eaf088bd
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308881
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#40317}
2023-06-20 13:12:27 +00:00
philipel
4e0bf2e5a1 Support conversion of VP9 non-flexible mode to generic descriptor for non-layered streams only.
When VP9 HW encoders don't provide any metadata a minimal non-flexible mode structure is generated for the stream: (https://source.chromium.org/chromium/chromium/src/+/refs/heads/main:third_party/blink/renderer/platform/peerconnection/rtc_video_encoder.cc;l=1275-1298;drc=f80633b34538615fcb73515ad8c4bc56a748abfe).

Bug: chromium:1455428, b/286993839, b/287458300
Change-Id: I72628f20927d685e9c8ba1744126d763896bd804
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309380
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40316}
2023-06-20 10:52:59 +00:00
Björn Terelius
9e247b6262 Add RtcEventProcessor::AddEvents overload that accepts PacketDirection.
Bug: b/282153758
Change-Id: I53d379752f2e8eca91eb190e966ca1853330a210
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309480
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40315}
2023-06-20 10:42:58 +00:00
Yury Yarashevich
e5ee43787a Fix candidate leak with initWithNativeCandidate.
[RTCIceCandidate initWithNativeCandidate:] does not take ownership on
candidate, so it must be released by caller.

Bug: None
Change-Id: I516e740e81a7aec04556f5fa71cbbecf3be6deb7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308500
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40314}
2023-06-20 10:31:44 +00:00
Samuel Attard
6efbd1fdbc fix: do not use dispatch_queue_global_t directly
Referencing this type directly is not allowed when building
with the macOS 14.0 SDK.

Other usages in webrtc follow this inline pattern too so
going with this instead of "auto" which also works.

Change-Id: I84a0ba9c78e83843bc73c71c642caca75750f127
Bug: chromium:1454356
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308560
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org>
Commit-Queue: Tomas Gunnarsson <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40313}
2023-06-20 10:23:18 +00:00
Harald Alvestrand
328e7b2af2 Sort media/engine/webrtc_video_engine.cc
This groups functions for WebRtcVideoSendChannel and
WebRtcVideoReceiveChannel together, rather than interspersing them.

Bug: webrtc:13931
Change-Id: Iecb5bac18e1d370331e9eb546c6b2fde4d92963f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309460
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40312}
2023-06-20 09:50:19 +00:00
Philipp Hancke
17ec0569c6 ICE: adjust priority of non-relay candidates
Introduces a field trial
  WebRTC-IncreaseIceCandidatePriorityHostSrflx
that adjusts the priority of non-relay candidates such that the STUN priority attribute calculated as
  (prflx-type-preference << 24) | (priority & 0x00FFFFFF)
as described in
  https://www.rfc-editor.org/rfc/rfc5245#section-7.1.2.1
will satisfy the condition that the STUN priority of server-reflexive candidates will always be higher than the STUN priority of relay candidates.

Previously this was not the case because the TURN relay preference was added to the local_preference for relay candidates, making it higher than the local_preference of srflx candidates gathered from the same interface.
This led to cases where the resulting candidate pair priority of a srflx-relay pair was higher than the candidate pair priority of a srflx-srflx pair, i.e. using a TURN server in cases that work using a direct P2P connection.

Whether the field trial is active can be observed by checking that
  priority-of-srflx-candidate&0x00FFFFFF
is greater than
  priority-of-relay-candidate&0x00FFFFFF

BUG=webrtc:13195,webrtc:5813,webrtc:15020

Change-Id: Ib91708fbe7310b6454f93158a45c9d77da009091
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/292700
Reviewed-by: Jonas Oreland <jonaso@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Philipp Hancke <phancke@microsoft.com>
Cr-Commit-Position: refs/heads/main@{#40311}
2023-06-20 08:02:27 +00:00
webrtc-version-updater
52f902abc6 Update WebRTC code version (2023-06-20T04:03:02).
Bug: None
Change-Id: I6bc533128e5303bfc7a54c3f879b899e0550e2b2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309425
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@{#40310}
2023-06-20 05:42:51 +00:00
Tony Herre
097a4decc2 Make all encodedaudioframes inherit from TransformableAudioFrameI'face
Make outgoing encoded audio frames inherit from the same Audio interface
that incoming frames inherit from, to align them and make it possible to
eg clone frames regardless of their direction.

Also begin removing GetHeader() from the Audio interface, replacing it
with getters for the specific values we actually need to propagate in
the API: sequence number and CSRCs. This makes it much easier to treat
incoming and outgoing frames the same, even if they don't have full
RtpHeaders prepared at the point of the transform.

Bug: chromium:1453226
Change-Id: Ib5b39b30dea8a378b3b26efb1589dfd64741d201
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308141
Commit-Queue: Tony Herre <herre@google.com>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Palak Agarwal <agpalak@google.com>
Cr-Commit-Position: refs/heads/main@{#40309}
2023-06-19 18:54:47 +00:00
henrika
bb917acb10 Fixes crash in WgcCaptureSession::ProcessFrame
This change fixes a minor issue where we previosuly assumed that the
following was true:

RTC_DCHECK_EQ(map_info.RowPitch, current_frame->stride())

It turns out that this is not always the case when sharing a window
where the stride can sometimes be a few bytes smaller than the
rowpitch.

The code is behind a command-line flag and no tests are affected.
Given limited review resources I therefore plan to bypass the CQ.
I know that it is not recommended but the change has been tested
locally on two different Windows platforms and it does avoid an
existing crash.

Code-Review: alcooper@chromium.org
No-Try: true
Bug: chromium:1421242
Change-Id: I01e7105a6f9fca7ce1349a57635dd373c28d160b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309342
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40308}
2023-06-19 14:39:39 +00:00
Danil Chapovalov
b4969d0036 Remove unused dependencies in rtp_rtcp
Bug: None
Change-Id: If0a14f54e55550f38b178bb6412198559677d217
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/309320
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Emil Lundmark <lndmrk@webrtc.org>
Commit-Queue: Emil Lundmark <lndmrk@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40307}
2023-06-19 11:51:27 +00:00
Sameer Vijaykar
9919841e4a Remove preprocessor definition for StatsReport::Value::id_val()
This is no longer needed after downstream redefinitions are deleted.

Bug: webrtc:15241
Change-Id: Iea6839bff781fe7d0c56b4739f3d43398c70f2b3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308681
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Sameer Vijaykar <samvi@google.com>
Cr-Commit-Position: refs/heads/main@{#40306}
2023-06-19 08:26:42 +00:00
Henrik Boström
c929ab49b9 Reland "[Stats] Remove enum-like structs in favor of strings."
This is a reland of commit ccc87ea3c625e43ab138e00ba2ef1a2d99756199

Downstream project has been updated.

Original change's description:
> [Stats] Remove enum-like structs in favor of strings.
>
> Due to a limitation of RTCStatsMember<T> not supporting enums, as well
> as the fact that in JavaScript enums are represented as basic strings,
> the stats enums have always been represented by T=std::string.
>
> Now that we have WebIDL-ified[1] all RTCStats dictionaries and enum
> values are simply string-copied (example: [2]) it seems safe to assume
> that "stats enums are just strings" is here to stay.
>
> Therefore there is little value in having C++ structs that look like
> enums so I'm deleting those in favor of std::string operator==()
> comparisons, e.g. `if (rtp_stream.kind == "audio")`. This removes some
> lines of code from our code base.
>
> I mostly want to get rid of these because they were taking up about 20%
> of the rtcstats_objects.h real estate...
>
> [1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/peerconnection/rtc_stats_report.idl
> [2] https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/peerconnection/rtc_stats_report.cc;l=667;drc=cf34e84c9df94256abfb1716ba075ed203975755
>
> Bug: webrtc:15245
> Change-Id: Iaf0827d7aecebc1cc02976a61663d5298d684f07
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308680
> Commit-Queue: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#40295}

Bug: webrtc:15245
Change-Id: Ibc7aeb518ed0bd7f1d725f140132c99e5a89bcf3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308880
Auto-Submit: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40305}
2023-06-17 15:41:44 +00:00
webrtc-version-updater
d05967cf4a Update WebRTC code version (2023-06-17T04:02:25).
Bug: None
Change-Id: I02aa92e152b93f3d7a345e8258ab395ef8addab9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308967
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@{#40304}
2023-06-17 05:27:56 +00:00
Yury Yarashevich
11affddbbc Fix PeerConnectionDependencies leak on PC init.
Release + dereference operator does not magically move buffer from
heap to stack, so there was a leak.

Bug: None
Change-Id: I9f760b6719ca1fc03aa3efcfda0c0ff9d87efda8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308581
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Commit-Queue: Yury Yarashevich <yura.yaroshevich@gmail.com>
Cr-Commit-Position: refs/heads/main@{#40303}
2023-06-16 19:36:31 +00:00
Danil Chapovalov
4d2a219436 Change RTCPReceiver::GetAndResetXrRrRtt to return TimeDelta
Bug: webrtc:13757
Change-Id: Iaf3a540fbab51990fb6b983912e3b8c1bb1aaa81
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308940
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40302}
2023-06-16 17:09:00 +00:00
Per K
18aba66271 Add test to ensure task deleted on TQ
Bug: webrtc:14449
Change-Id: I85757af9c1ad6ad630d9ffe7b2528ca7c7161883
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308900
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40301}
2023-06-16 14:33:13 +00:00
Florent Castelli
213090bf4b Add AbsoluteCaptureTime RTP extension to supported list in engines.
Added as stopped by default as it should be requested by the application,
but it should be listed as available.

Bug: webrtc:14631
Change-Id: I301cfd29c79083c97b4a43b8fdafee2dbe4887a5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308824
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40300}
2023-06-16 11:08:48 +00:00
henrika
6c453b7d59 Light-weight detection of static content when using WGC
This CL adds a light-weight detection of "frame content has changed
since last frame" to an existing pass where bytes are copied from a
texture to a DesktopFrame. The resulting boolean can then later be
used to bypass a full detection of if the content is static or not.
As a result, we only check for static content for a small fraction of
all captured WGC frames and this reduces the total load when 0Hz
is enabled for WGC.

Both WGC and 0Hz support for WGC is still behind a flag.

Bug: chromium:1421242
Change-Id: If9e3721c60a244a3919758fe861d56d4b54cb039
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308821
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40299}
2023-06-16 11:00:34 +00:00
Christoffer Jansson
45666d4b01 Revert "[Stats] Remove enum-like structs in favor of strings."
This reverts commit ccc87ea3c625e43ab138e00ba2ef1a2d99756199.

Reason for revert: Breaks downstream project

Original change's description:
> [Stats] Remove enum-like structs in favor of strings.
>
> Due to a limitation of RTCStatsMember<T> not supporting enums, as well
> as the fact that in JavaScript enums are represented as basic strings,
> the stats enums have always been represented by T=std::string.
>
> Now that we have WebIDL-ified[1] all RTCStats dictionaries and enum
> values are simply string-copied (example: [2]) it seems safe to assume
> that "stats enums are just strings" is here to stay.
>
> Therefore there is little value in having C++ structs that look like
> enums so I'm deleting those in favor of std::string operator==()
> comparisons, e.g. `if (rtp_stream.kind == "audio")`. This removes some
> lines of code from our code base.
>
> I mostly want to get rid of these because they were taking up about 20%
> of the rtcstats_objects.h real estate...
>
> [1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/peerconnection/rtc_stats_report.idl
> [2] https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/modules/peerconnection/rtc_stats_report.cc;l=667;drc=cf34e84c9df94256abfb1716ba075ed203975755
>
> Bug: webrtc:15245
> Change-Id: Iaf0827d7aecebc1cc02976a61663d5298d684f07
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308680
> Commit-Queue: Henrik Boström <hbos@webrtc.org>
> Reviewed-by: Harald Alvestrand <hta@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#40295}

Bug: webrtc:15245
Change-Id: I05db80ba9f29460239de82cea9d95136e4c708e4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308860
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: Christoffer Jansson <jansson@webrtc.org>
Owners-Override: Christoffer Jansson <jansson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#40298}
2023-06-16 06:29:26 +00:00
webrtc-version-updater
0b86253c15 Update WebRTC code version (2023-06-16T04:04:20).
Bug: None
Change-Id: Ib3248282f771e7789fe319fed61b00dc2b1334ab
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308795
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@{#40297}
2023-06-16 05:45:45 +00:00
chromium-webrtc-autoroll
816dc3b608 Roll chromium_revision 570bae752f..8603a0cee2 (1158090:1158377)
Change log: 570bae752f..8603a0cee2
Full diff: 570bae752f..8603a0cee2

Changed dependencies
* fuchsia_version: version:13.20230614.3.1..version:13.20230615.1.1
* src/base: e7e07e35d0..ca44743737
* src/build: 4a76832b23..6c0e0e0c84
* src/buildtools/third_party/libc++abi/trunk: 899caea381..c2a35d1b2c
* src/ios: edeb2b6985..0df9bead29
* src/testing: 9f6c4e8d41..f3b8f1d8c1
* src/third_party: 6af411bf6f..770155421d
* src/third_party/depot_tools: dedeb88991..3ffad8166e
* src/third_party/icu: 1766524877..e8c3bc9ea9
* src/third_party/perfetto: 5d6f9249d1..0ba4c2cd12
* src/tools: 9f5577308f..eb2e55cf81
DEPS diff: 570bae752f..8603a0cee2/DEPS

No update to Clang.

BUG=None

Change-Id: Ia3fc129d020afd536691bdf14ce84684a7f7da79
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/308790
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@{#40296}
2023-06-15 20:58:22 +00:00