6352 Commits

Author SHA1 Message Date
Tony Herre
580b0f944b Allow feeding a Sender encoded videoframe into a Receiver Transform
Instead of crashing with a CHECK fail when an insertable stream of a
Video RTPReceiver is given a frame from an RTPSender's insertable
stream, construct a reasonable analogous receive frame and pass it
through to be decoded.

A small step towards removing the split we have between Sender and
Receiver implementations of TransformableFrameInterface which just
confuses users of the API.

Bug: chromium:1250638
Change-Id: I02e0f1d9d35c16dc12718927c5200ff7cf4407e3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301181
Reviewed-by: Palak Agarwal <agpalak@google.com>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Tony Herre <herre@google.com>
Cr-Commit-Position: refs/heads/main@{#39888}
2023-04-18 15:08:06 +00:00
Danil Chapovalov
95e7a0398c Delete clamping cumulative loss in ReportBlocks on receiving side
Bug: webrtc:9598
Change-Id: I8a54af88708e5d96e46ba67ab0ef2e0e59fe0b86
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300941
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39887}
2023-04-18 13:43:27 +00:00
henrika
56e830819f Removes usage of FrameArrived event for WGC - part 2
Minor changes adding a final touch to
https://webrtc-review.googlesource.com/c/src/+/301200

Bug: chromium:1428592
Change-Id: I6271b01f2c63645db080897f19fbdb343ae499b8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301520
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39882}
2023-04-18 08:05:42 +00:00
Christoffer Jansson
69c8d3c843 Revert "Migrate TestAudioDeviceModule on AudioDeviceModuleImpl"
This reverts commit e42bf81486d2f08b6dcbf1442287202e937ce52b.

Reason for revert: Breaks iOS simulator bots and thus blocks chromium roll, https://chromium-review.googlesource.com/c/chromium/src/+/4433814

Original change's description:
> Migrate TestAudioDeviceModule on AudioDeviceModuleImpl
>
> Bug: b/272350185
> Change-Id: Ia3d85d6fa3b0d4809e987a39d60d3eb022687132
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300363
> Commit-Queue: Artem Titov <titovartem@webrtc.org>
> Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#39877}

Bug: b/272350185
Change-Id: I1e3b542fc1278797f283afedeae01cbb7412d353
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301701
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Jeremy Leconte <jleconte@google.com>
Auto-Submit: Christoffer Jansson <jansson@google.com>
Owners-Override: Christoffer Jansson <jansson@google.com>
Cr-Commit-Position: refs/heads/main@{#39881}
2023-04-18 07:18:16 +00:00
Per K
8b5bf6dd05 [WebRTC-SendPacketsOnWorkerThread] Delete MaybeWorkerThread
This helper class is no longer used.


Bug: webrtc:14502
Change-Id: I7940de762ebb9a7c6d04927603f249f5b0061051
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301161
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39880}
2023-04-18 07:07:02 +00:00
Artem Titov
e42bf81486 Migrate TestAudioDeviceModule on AudioDeviceModuleImpl
Bug: b/272350185
Change-Id: Ia3d85d6fa3b0d4809e987a39d60d3eb022687132
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300363
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39877}
2023-04-17 14:24:48 +00:00
Rasmus Brandt
59d09aeeee Move deprecated JitterBuffer to modules/video_coding/deprecated/
This move further clarifies that the file and its class are deprecated. It also cleans up the modules/video_coding root folder a bit.

No functional changes are intended.

Bug: webrtc:14876
Change-Id: Ic3ac439b3dd3492e6c9c85869efa80a6708658ee
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301521
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39876}
2023-04-17 13:19:50 +00:00
Sergey Silkin
ea1502accb Add necessary deps for android video_codec_perf_tests
native_test_jni_onload depends on base_jni which depends on modules/audio_processing:api. This requires to include audio_device_java in pure video targets like video_codec_perf_tests.

Bug: webrtc:14852
Change-Id: I5e7b102fd730801562695bf3f4d5170ec8e59b58
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301363
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39873}
2023-04-17 12:19:13 +00:00
Per K
b812b7a86b Delay probes after route change until transport is writable
Ensure probes are not created until after the transport becomes writable even if the network route change.
DTLS negotiation must complete before there is a point in sending probes.

Bug: webrtc:14928
Change-Id: Ib3cb93aef9f38e306b094dd700ed595cf9eb3f32
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301362
Reviewed-by: Diep Bui <diepbp@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39870}
2023-04-17 10:18:34 +00:00
Jan Grulich
4beafa38d5 PipeWire video capture: set device unique ID during initialization
This is what Firefox implementation relies on and I can see that also
the V4L2 implementation is doing the same.

Bug: webrtc:15087
Change-Id: I641062ba879b6ef83e31af79ecc9d06fdae54adb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301320
Commit-Queue: Jan Grulich <grulja@gmail.com>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39869}
2023-04-17 09:31:45 +00:00
Markus Handell
4ec56a3aa0 VCMJitterBuffer: fix deadlock.
The jitterbuffer would call Flush which takes a mutex from
InsertPacket, which is already under the same mutex. Fix
this by introducing an internal flush method that assumes
a locked state.

The change also adds more thread annotations in case more
problems were present. No more problems were detected.

Fixed: b/277930190
Change-Id: If85609f27f8187ade9370847fecc2bc83d940dd5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301340
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Auto-Submit: Markus Handell <handellm@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39868}
2023-04-17 08:54:18 +00:00
henrika
58e8cb0553 Removes usage of FrameArrived event for WGC
* Removes a ~60Hz thread-wakeup signal caused by the FrameArrived event
* Initial power measurements shows a reduced power consumption
* No increase in time to first captured packet found

Bug: chromium:1428592
Change-Id: Ia23b5db0c87e70e5b0d6919394494a24d8944493
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301200
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39861}
2023-04-14 11:44:12 +00:00
henrika
b9313b9584 Removes usage of the Magnifier API on Windows
This CL removes the usage of the Magnifier screen capture API on
Windows. The idea is to remove the actual source in a second step
once this change lands.

Bug: chromium:1428341
Change-Id: Id2cb25632c7edbea2cf527959b14b27ee00b0e56
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301164
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Cr-Commit-Position: refs/heads/main@{#39856}
2023-04-13 20:27:24 +00:00
Jeremy Leconte
06e2148889 Deflake simulcast flow tests: prevent negative Timestamp exception.
These tests often fail in 'ExtrapolateLocalTime' because the result gives a negative Timestamp.

Here is the stack from https://chromium-swarm.appspot.com/task?id=6173230e67897b10:
PC: @     0x7f03afdb8e87  (unknown)  raise
    ...
    @     0x55f4a360ba71        352  webrtc::Timestamp::operator+()
    @     0x55f4a47ecaf3        160  webrtc::TimestampExtrapolator::ExtrapolateLocalTime()

Low-Coverage-Reason: coverage isn't that low.
Change-Id: If3e7cbf31d6c4800727b24352ed2c6edc425fc73
Bug: webrtc:15022
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300600
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Jeremy Leconte <jleconte@google.com>
Cr-Commit-Position: refs/heads/main@{#39853}
2023-04-13 16:35:26 +00:00
Jakob Ivarsson
51cd709d11 Refactor NetEq fake decode from file.
More or less bit-exact, only difference is that we don't seek in the
input file before returning silence for DTX packets.

Bug: webrtc:13322
Change-Id: I147b70d4a0f2c78719c9673b55df6617e064bd61
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301104
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39851}
2023-04-13 14:48:41 +00:00
Artem Titov
fb8e3de0a8 Use AudioDeviceModule instead of TestAudioDeviceModule.
This is step to allow migration of Test ADM to the AudioDeviceModuleImpl
as a base class to include AudioDeviceBuffer into SUT.

Also it will allow to remove WaitForRecordingEnd() method from Test
ADM

Bug: b/272350185, webrtc:15081
Change-Id: If2aa43ec0c31f6ad9aab8aa3e36cabc4a7a73c22
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300862
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39849}
2023-04-13 12:31:34 +00:00
Per K
1b77daea81 Replace lock with SequenceChecker in PacketRouter
Since PacketRouter now is only used on the worker thread, there is no need for a lock.

Bug: webrtc:14502
Change-Id: I65778f68b7e211d7bc7388a4615888a49ceb5f59
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300964
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Markus Handell <handellm@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39848}
2023-04-13 11:42:30 +00:00
Artem Titov
7720331b40 Mark TestADM test API
Bug: b/272350185, webrtc:15081
Change-Id: I461162ed4e4afd111b2c803b2d11161f3e5b93e1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300863
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39843}
2023-04-13 10:40:23 +00:00
Danil Chapovalov
ec2670e631 Cleanup ReportBlockData class: use Timestamp and TimeDelta
Bug: webrtc:13757
Change-Id: Ic3ddb05413f58cedd12bf0f32c852befb9bd40f4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300940
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Henrik Boström <hbos@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39841}
2023-04-13 08:51:12 +00:00
Sergey Silkin
26d1b26277 Log metrics even if test failed
Set of codecs for testing is hardcoded to AV1, VP8, VP9, H264, H265. Some codecs may not be available due to lack of support on the platform or due to some issue in our code which would be a regression. Reporting zero metrics for failed tests would allow the perf tool to detect such a regression.

This also enables codec tests by default. The tests should not run on bots since video_codec_perf_tests binary is not included in any test suits yet.

Bug: webrtc:14852
Change-Id: I967160069055036f93e595d328c4d5f1ca483be9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300868
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39840}
2023-04-13 08:49:37 +00:00
henrika
e02d50931b Adds temporary verbose logging to track cursor flickering (WebRTC)
The idea is to land this in Canary and ask for feedback from users
who can reproduce the issue, solve the issue and then revert this CL.

Example: https://paste.googleplex.com/6080504230051840

Bug: chromium:1421656
Change-Id: Ic214dc341a322470970abeca1794493f45b93843
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301080
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39834}
2023-04-12 22:47:33 +00:00
Fredrik Hernqvist
79ea89ee74 Add histogram for audio mixer maximum source count.
This adds the histogram WebRTC.Audio.AudioMixer.NewHighestSourceCount
which logs the highest number of sources an AudioMixer has had. The
statistic is logged whenever the highest number of sources increases.
This allows us to differentiate the statistic to see how many times
the mixer has had a certain maximum number of sources.

Chromium CL:
https://chromium-review.googlesource.com/c/chromium/src/+/4414896

Bug: chromium:1430806
Change-Id: Iab92e201a0b667741cc8f3bbbed92fa989d7fcda
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300860
Reviewed-by: Olga Sharonova <olka@webrtc.org>
Commit-Queue: Fredrik Hernqvist <fhernqvist@google.com>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39833}
2023-04-12 17:48:40 +00:00
Nico Weber
0f87b38535 mac: Work around an inccorect availability annotation in the 13.3 SDK
Bug: chromium:1431897
Change-Id: Ib871dc22d2cf93180d7aa05016e34ffec944d73e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/301040
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Alexander Cooper <alcooper@chromium.org>
Auto-Submit: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#39830}
2023-04-12 16:56:22 +00:00
Sergey Silkin
b4a45546b7 Dedicated build target for video codec perf tests
Bug: webrtc:14852
Change-Id: Ib56ef931b58058a7d09b97b7013ba39ee1767629
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300740
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39823}
2023-04-12 11:24:48 +00:00
Yu-Chen (Eric) Sun
35f2b89ee4 Fix the issue 15059: wrong libaom initialized target bitrate
Fix Issue 15059: The target bitrate was mistakenly set to be the maximal

bitrate when initializing the libaom encoder.

Bug: webrtc:15059
Change-Id: I38498d4cce7b0a9c26736d9f1096178dd2e1fef6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300004
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39822}
2023-04-12 10:42:58 +00:00
Jakob Ivarsson
b70a36e770 Require exact timestamp to be available when extracting multiple packets for decoding.
Removes the only remaining dependency on sequence number in NetEq
except for the NackTracker (which arguably doesn't belong in NetEq).

This fixes a potential issue where FEC is not perfectly aligned with
the original packet boundaries, causing both the FEC and the original
packet to be decoded.

Bug: webrtc:13322
Change-Id: I3abec9ebfc194976fca42d5f4f4ed4ee136f44ef
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300560
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39815}
2023-04-11 16:41:30 +00:00
Per K
401c14aaf6 [WebRTC-SendPacketsOnWorkerThread] Cleanup TaskQueuePacedSender
This remove use of MaybeWorkerThread from TaskQueuePacedSender. Instead,
the TaskQueue used when creating the TaskQueuePacedSender is used for
pacing. That is, the "worker thread".

Bug: webrtc:14502
Change-Id: I504f8e634653af6493e609db6e42b07d488fd699
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300820
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39813}
2023-04-11 16:11:13 +00:00
Jakob Ivarsson
d5ebc33562 Refactor NetEq rtp dump input.
NetEq packet source input doesn't have any other uses than rtp dump,
so remove that layer.

Bug: None
Change-Id: I667bb4aead9f0f2fe8a1c0d6d911a4670ded67e7
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300542
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39810}
2023-04-11 14:32:35 +00:00
Erik Språng
aab1bdea11 Add ability to flush packets from pacer queue on a key frame
Bug: webrtc:11340
Change-Id: I70a97ab3ea576e54f1b4cf02042af5e6d5d6c2de
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300541
Auto-Submit: Erik Språng <sprang@webrtc.org>
Reviewed-by: Ying Wang <yinwa@webrtc.org>
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39805}
2023-04-11 10:51:33 +00:00
Henrik Boström
9bbd9598b8 Also apply VP9 bitrate's singlecast tweak in single active stream case.
We shouldn't treat VP9 simulcast {active,inactive,inactive} different
from VP9 singlecast when it comes to bitrates, so the condition
`config.simulcast_layers.size() <= 1` is updated to
`video_codec.numberOfSimulcastStreams <= 1` which holds true in the
"single active stream" case as well.

This is consistent with existing logic, such as the fact that we use
`SvcRateAllocator` instead of `SimulcastRateAllocator` when
`numberOfSimulcastStreams <= 1`.

Bug: webrtc:15061
Change-Id: I67fc78b9c0f97f1d607c91bbc689b06c3fd5cb48
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/298920
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39791}
2023-04-08 15:18:29 +00:00
Jakob Ivarsson
27d70f3133 Refactor NetEq test event log input.
Remove duplicate implementions and complex inheritance.

Slight change to the event log visualizer NetEq simulations to only
include time after the first packet has been received.

Bug: None
Change-Id: I8a7bd3d4d2b601fc134292554476020f9b3eee92
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300300
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39773}
2023-04-05 23:22:36 +00:00
Danil Chapovalov
deb25d2f45 Cleanup ReceiveSideCongestionController api from OnReceivedPacket taking legacy RTPHeader
Bug: webrtc:14859
Change-Id: I595859c021c2cd0adcf60af0f560e30010bae7a5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/300261
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39770}
2023-04-05 17:07:27 +00:00
Henrik Boström
8481f6358e Remove IsSinglecastOrAllNonFirstLayersInactive() helper.
As of recent changes, we can simply look at numberOfSimulcastStreams
because in the {active,inactive,inactive} case we get a single
webrtc::VideoStream here[1] which results in numberOfSimulcastStreams
being 1 here[2].

Looking at numberOfSimulcastStreams instead of using a helper is
preferred because it is more descriptive and in the future, when
{inactive,active,inactive} or {inactive,inactive,active} cases of VP9
simulcast is also supported (webrtc:15046) then this gating will work
even when the first layer is not the active one.

[1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/video/config/encoder_stream_factory.cc;l=146;drc=c99753ac8f051e379ae68e281aaef04b0a5ca8f2

[2] https://source.chromium.org/chromium/chromium/src/+/main:third_party/webrtc/modules/video_coding/video_codec_initializer.cc;l=77;drc=4baea5b07f2fd309892845cf2d1c0f4ca77862d3

# No need to wait for win chrome bot, everything else green
NOTRY=True

Bug: webrtc:15046
Change-Id: I8aaea2e8cc350bd01fb00cc7fd85032b7fdfe24d
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299942
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Henrik Boström <hbos@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39759}
2023-04-04 13:59:07 +00:00
Per K
755ffa7e8a Remove unused field trial parameters from AimdRateControl.
ratio and ignore_acked where added here https://webrtc-review.googlesource.com/c/src/+/252442
ignore_decr  https://webrtc-review.googlesource.com/c/src/+/253901

Bug: none
Change-Id: I85008dfa70bf57bfefb453f9f1d1929510c7b825
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/298045
Reviewed-by: Diep Bui <diepbp@webrtc.org>
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39751}
2023-04-03 14:36:23 +00:00
henrika
d549e4b6ce DXGI now consumes may_contain_cursor
Before:

No attempt was made to figure out of the cursor was embedded into the
captured video frame when using DXGI on Windows as screen capturer.
Instead the cursor is superimposed on the frame by an external mouse
and cursor composer.

After:

We now check if the display adapter supports embedding the mouse
cursor and if so use it as is and thereby avoid adding it independently.

Bug: chromium:1421656
Change-Id: Ie07fe13e1c8f9583769961328bb41fbc689cd8e0
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299241
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39742}
2023-04-03 08:30:59 +00:00
Jakob Ivarsson
adfc1601c1 Rewrite NetEq stable delay mode.
The goal is to reduce the amount of time stretching done in response
to network jitter. Specifically, we should be able to “ride” over delay
spikes if the current delay is sufficient, without decelerating
playout. We should also avoid accelerating immediately after a buffer
underrun, until we are reasonably sure that the jitter has passed.
This is achieved by increasing the deadband where we choose to do
normal playout, based on the maximum delay in the short term packet
arrival history.

The buffer level filter is still used to report the average delay for
A/V sync purposes.

The new behavior is behind a flag and will be experimented with before
it is made default.

Bug: webrtc:13322
Change-Id: I5fba0c9d46d835dbe5401669598fa031512ccced
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299500
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39730}
2023-03-31 14:47:55 +00:00
Jakob Ivarsson
d116350b48 Count type of concealment based on last decoded type.
This is to avoid counting concealed samples after comfort noise as
speech.

Bug: webrtc:13322
Change-Id: I12cf18d720c697d81376c6f6cdc02d7c6bfa49a2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299300
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39717}
2023-03-29 14:34:57 +00:00
Danil Chapovalov
d094ad7e2e Reassign a TODO to a bug that can contain more context
No-try: true
Bug: webrtc:15054
Change-Id: Ibe311594d549d1a1776d916f8bbf79ef49edf398
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299422
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@{#39715}
2023-03-29 11:37:02 +00:00
Tony Herre
e7482b403d Remove deprecated TransformableVideoFrameInterface::GetMetadata
Bug: chromium:1420245
Change-Id: I4cc008bf8a4af2404f33589aededa8a16b774764
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299263
Commit-Queue: Tony Herre <herre@google.com>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39712}
2023-03-29 08:33:46 +00:00
Björn Terelius
2b742f7eaa Revert "Unifying the handling of the events in NetEqInput."
This reverts commit d93b7b91e09e9700efcab22e0c810dab918ce656.

Reason for revert: Breaks downstream tests

Original change's description:
> Unifying the handling of the events in NetEqInput.
>
> Bug: webrtc:14763
> Change-Id: I9615a9ce41c9b577c4ebd4cdcc9885bfbc5dac48
> Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/293040
> Reviewed-by: Sam Zackrisson <saza@webrtc.org>
> Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
> Cr-Commit-Position: refs/heads/main@{#39706}

Bug: webrtc:14763
Change-Id: If076c8fc59a38f011dfa20829f2dd91dd2f914b2
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299420
Owners-Override: Björn Terelius <terelius@webrtc.org>
Auto-Submit: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Bot-Commit: rubber-stamper@appspot.gserviceaccount.com <rubber-stamper@appspot.gserviceaccount.com>
Cr-Commit-Position: refs/heads/main@{#39711}
2023-03-29 08:01:46 +00:00
Danil Chapovalov
1821faaa6c Cleanup AimdRateControl interface and unittests
Pass FieldTrialsView by const& to note it can't be null and doesn't need to outlive the constructor
In unittests use AimdRateControl object directly instead of through helpers
Use unit types (TimeDelta, DataRate) directly, reducing their conversion to plain numbers
Replace SimulatedClock with a single Timestamp now variable or constant

Bug: None
Change-Id: I147f85e629b4d8923aa19896ea211a6f9dca1e68
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299260
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39707}
2023-03-28 16:43:24 +00:00
Jesús de Vicente Peña
d93b7b91e0 Unifying the handling of the events in NetEqInput.
Bug: webrtc:14763
Change-Id: I9615a9ce41c9b577c4ebd4cdcc9885bfbc5dac48
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/293040
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Jakob Ivarsson‎ <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39706}
2023-03-28 15:53:09 +00:00
Jakob Ivarsson
d6c4b1641d Remove decoded timestamp extrapolation from NackTracker.
UpdateLastDecodedPacket is anyway only called when a new packet is
decoded.

Bug: webrtc:10178
Change-Id: I8cfcc5791e71079034a2d0806c44b3b071ac2ffb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299180
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39703}
2023-03-28 12:33:42 +00:00
Danil Chapovalov
48476d84d5 Fix generating transport feedback RTCP packet
when there are lot of missing packets to report before next received packet

Bug: chromium:1426582
Change-Id: I6746294152d13e18120cdb173b11b245e5c803f5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/298921
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39698}
2023-03-28 09:24:49 +00:00
henrika
9204210718 Clarifies selection of screen capture API on Windows
This change makes it more clear that there are three different
capture API combinations for screen sharing on Windows.

No option => GDI without fallback.

DirectX option => DirectX with GDI as fallback

Magnifier option => Magnifier API with GDI as fallback

Previously, if both DirectX and Magnifier were enabled, the end
result was Magnifier for unknown reasons.

With this change in place, we can remove usage of the Magnifier API
in Chrome and switch  between DirectX and GDI simply by allowing
DirectX or not.

Bug: None
Change-Id: Ice915d6721fa84a25d275f22246df73fc61f64b5
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299061
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Alexander Cooper <alcooper@chromium.org>
Cr-Commit-Position: refs/heads/main@{#39692}
2023-03-27 20:22:33 +00:00
Danil Chapovalov
7bb9322e9e Drop RtpRtcp unittest dependency on global field trial string
FieldTrialBasedConfig reads config from the global field trial string
ScopedKeyValueConfig adjust the global field trial string
test::ExplicitKeyValueConfig doesnt touch the global field trial string

Bug: webrtc:11926
Change-Id: I8883634fdc7e1bdb63eec9bf38114a3031103839
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299062
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Auto-Submit: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39683}
2023-03-27 09:53:19 +00:00
Danil Chapovalov
0e5501f0ff Cleanup OveruseDetector from tracers of old experimentation
experiment was cleaned up in
https://webrtc-review.googlesource.com/c/src/+/284922

Bug: webrtc:4711
Change-Id: I19e1ba9716a5b0375fa4c5cf8c69e6bb2b03de6b
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299041
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39671}
2023-03-24 17:13:45 +00:00
Danil Chapovalov
7f60e5f753 Cleanup IncludeCaptureClockOffset field trial
Bug: webrtc:10739
Change-Id: I642cdf7574277c4c1b4ceb62b9e8a6905325dcfb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299004
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39669}
2023-03-24 14:03:07 +00:00
Jakob Ivarsson
94b51210f8 Include packet waiting time in concealment decision.
This is to be more robust to packet loss during DTX and paused streams.

Without it, we can wait to decode an available packet when in CNG or
PLC mode until more packets arrive, which for DTX and paused streams
can take a long time.

We already include the waiting time if the last packet in the buffer
is a DTX packet.

Bug: webrtc:13322
Change-Id: Iaf5b3894500140d6f83377ba2cd65b44e0cdac05
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/299009
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39667}
2023-03-24 13:18:58 +00:00
Jakob Ivarsson
096563e9d2 Combine concealment decision logic in NetEq.
Decisions should be the same (almost) regardless of PLC or CNG mode.

The new logic is submitted behind a flag to avoid changing the default
behavior. This results in messy code, but can be simplified once the
flag is removed.

Bug: webrtc:13322
Change-Id: I959d63e069ad7970b75205c4c4173d774b0e4cac
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/298625
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#39657}
2023-03-23 15:02:53 +00:00