- Enable flexible mode in loopback tools and quality tests
- Ensure duplicate references are not set by the sender in video header
- Reset first active spatial layer on keyframe in encoder
- Make vp9 encoder to not generate spatial references for first active
layer with external reference control in svc flexible mode
Bug: webrtc:10049
Change-Id: If9ff576ea8a1a2fef6116b17b5b5adff08c5f8c6
Reviewed-on: https://webrtc-review.googlesource.com/c/112080
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25795}
before this CL it was only configured when pacer is used.
This CL sets it also when pacer is not used.
Move block for setting TransmissionOffset/AbsoluteTime extensions after pacer_ check
to stress in pacer case there are set(overwritten) in another function.
Bug: None
Change-Id: I06a6dd6ec689a25439a75b3baa71340535cd1ff8
Reviewed-on: https://webrtc-review.googlesource.com/c/112126
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25794}
Propose resolution of Issue 10011 : (GCC) build fails desktop_capturer.cc:66:66: error: ‘strncmp’ was not declared in this scope
Bug: webrtc:10011
Change-Id: I4afdfd96f8bbc8e39380a365138ab79e237568e3
Reviewed-on: https://webrtc-review.googlesource.com/c/111885
Commit-Queue: Brave Yao <braveyao@webrtc.org>
Reviewed-by: Brave Yao <braveyao@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25790}
The fuzzers detected a possible overflow in the multiplication of sum and gainQ10.
Since gainQ10 cannot be larger than 2048000 (see WebRtcIsac_kQGain2Levels) and sum cannot be larger than 2^16, a int64 is large enough to hold the result.
Bug: chromium:904909
Change-Id: Icb12821d4006aaaaf70a5735d2abd2b96f7a2f0e
Reviewed-on: https://webrtc-review.googlesource.com/c/111921
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Jonas Olsson <jonasolsson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25787}
This adds an interface for accessing stats on the capture stream, and
adds a level estimator to report one of the stats.
Bug: webrtc:9947
Change-Id: Id472534fa2e04d46c9ab700671f620584a246afb
Reviewed-on: https://webrtc-review.googlesource.com/c/109587
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25786}
The intention is to provide a bandwidth estimate that only updates if
the actual available bandwidth is known to have changed. This will be
used in media streams to avoid changing the configuration (such as
frame size, audio frame length etc), just because the control target
rate changed.
Bug: webrtc:9718
Change-Id: I17ba5a2f9e5bd408a71f89c690d45541655a68e2
Reviewed-on: https://webrtc-review.googlesource.com/c/107726
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25772}
Pass encoded frames to packetizer immediately if encoder is configured
to drop whole superframe.
Bug: webrtc:9950
Change-Id: Iedee9618bb146307efd5a86cb35bf14b5e64b341
Reviewed-on: https://webrtc-review.googlesource.com/c/109002
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25771}
This prepares for providing an additional implementation of delay based
rate control. By moving the probe controller, less code will have to be
added in the upcoming CL.
Bug: webrtc:9718
Change-Id: I64eb2c8f5f7950b6e9d209f110dc0a757c710b4b
Reviewed-on: https://webrtc-review.googlesource.com/c/111860
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25770}
This CL decouples //rtc_base:rtc_base_tests_utils from gunit by
moving gunit helpers (rtc_base/gunit.h) and rtc_base/testclient.h
(which depends on gunit helpers) to their own build target.
It also removes some unused dependencies in the WebRTC build graph.
Bug: None
Change-Id: Ia9820e84ff697da39b351eef73c45f6e4bdf2623
Reviewed-on: https://webrtc-review.googlesource.com/c/111861
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25769}
This is to let ANA config proto to fully control it.
Bug: b/119788974
Change-Id: Ib7842f784bdf879cb7d753c7077ce845f435a379
Reviewed-on: https://webrtc-review.googlesource.com/c/111741
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25764}
This change introduces a clockdrift detector operating on the estimated
delay of the echo path delay estimator. Each time the delay estimate
changes it is compared to previous estimates. If the estimates are
slowly increasing or decreasing, clockdrift is detected.
Four different patterns are considered clockdrift:
- k, k+1, k+2, k+3
- k, k+2, k+1, k+3
- k, k-1, k-2, k-3
- k, k-2, k-1, k-3
A delay estimate history matching the three last elements in one of the
patterns is considered probable clockdrift. Matching all four elements
is considered verified clockdrift.
If the delay is constant for some time after clockdrift is detected the
clockdrift detector will revert to no detected clockdrift.
The level of clockdrift is reported via an UMA histogram.
Bug: webrtc:10014
Change-Id: I1cce4d593e101a8b3fa99df6935e59b4243cb97a
Reviewed-on: https://webrtc-review.googlesource.com/c/111381
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25758}
- Rename avg_max_bitrate_kbps to link_capacity_estimate_kbps and change
the type to optional.
- Remove the RateControlRegion enum. The old code seems to have the invariant
that the region is kRcMaxUnknown iff avg_max_bitrate_kbps is uninitialized.
- Change floats to double.
Bug: webrtc:9942
Change-Id: Ic071a11ec4950053ec92beaa06f28f43192521d7
Reviewed-on: https://webrtc-review.googlesource.com/c/111247
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25752}
inline InOrder check
remove it from IsRetransmit check as redundant
avoid call to IsRetransmitOfOldPacket when packet arrived in order
take current time once
Remove packet overhead counting as unused
Bug: None
Change-Id: Icd8bf69b5076e4469c349529c9ac79a1b15d9515
Reviewed-on: https://webrtc-review.googlesource.com/c/111746
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25749}
Since the link capacity is designed to be a more stable value, we don't
need the smoothing. This allows us to react faster to changes in link
capacity while still avoiding to react to changes in target bitrate due
to normal control behavior.
Bug: webrtc:9718
Change-Id: I2fbf6bb882f312a7b28ea43d27057886d035ac45
Reviewed-on: https://webrtc-review.googlesource.com/c/111511
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25745}
Move HdrMetadata to ColorSpace as part of preparing for joint transmission
of these two objects.
Bug: webrtc:8651
Change-Id: Ie948011a2c0106d5967cb5ef3b9565217e798272
Reviewed-on: https://webrtc-review.googlesource.com/c/111481
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25730}
Avoid that the client code relies on the adaptive digital mode being
enabled by default (error prone).
Bug: webrtc:7494
Change-Id: I765fecf535cf31a2163e10595a42520473c233b6
Reviewed-on: https://webrtc-review.googlesource.com/c/111586
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25728}
Test disabled on TSAN due to repeated failures. There are data races
in a low-level syncronization primitive (semaphore). Since
syncronization primitives should handle that, I think TSAN may be
configured incorrectly.
The locking scheme is written entirely in the unit test. This means we
are losing some test coverage of *unit tests*.
TBR=jamiewalch@chromium.org
Bug: webrtc:10019
Change-Id: Ieafa00a5a789acf8d0bacf6ad669c6daca7efa17
Reviewed-on: https://webrtc-review.googlesource.com/c/111585
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25723}
This reverts commit a13be019017449c57f48203d0fb778f34f7553a7.
Reason for revert: The GN definitions cause problems for downstream tooling. They're also generally complicated and reach deep into Chromium's build which is undesirable. Setting `rtc_use_pipewire = true` by default should also be re-evaluated.
Original change's description:
> Default to dlopening the PipeWire.
>
> Reuse the existing infra from Chromium to do that. Additionally the
> target_gen_dir needs to the added to the include directories, otherwise
> the Chromium build will fail as it won't find the generated stubs. Also the
> pw_properties_new() was replaced with pw_properties_new_string() as it doesn't
> require a variadic parameter because the //tools/generate_stubs/generate_stubs.py
> doesn't work with them correctly. With all these changes in place the PipeWire
> support is enabled when compiling on Linux.
>
> Bug: chromium:682122
> Change-Id: I3bbc5efaecd9a08e20cbcf998b2cb534224eae7d
> Reviewed-on: https://webrtc-review.googlesource.com/c/111081
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Reviewed-by: Brave Yao <braveyao@webrtc.org>
> Commit-Queue: Tomáš Popela <tomas.popela@gmail.com>
> Cr-Commit-Position: refs/heads/master@{#25720}
TBR=phoglund@webrtc.org,mbonadei@webrtc.org,braveyao@webrtc.org,tomas.popela@gmail.com
Change-Id: Iec20b07cb1cff7d57f8114ac6ec2d0d250e61214
No-Try: true
Bug: chromium:682122
Reviewed-on: https://webrtc-review.googlesource.com/c/111584
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25722}
Reuse the existing infra from Chromium to do that. Additionally the
target_gen_dir needs to the added to the include directories, otherwise
the Chromium build will fail as it won't find the generated stubs. Also the
pw_properties_new() was replaced with pw_properties_new_string() as it doesn't
require a variadic parameter because the //tools/generate_stubs/generate_stubs.py
doesn't work with them correctly. With all these changes in place the PipeWire
support is enabled when compiling on Linux.
Bug: chromium:682122
Change-Id: I3bbc5efaecd9a08e20cbcf998b2cb534224eae7d
Reviewed-on: https://webrtc-review.googlesource.com/c/111081
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Brave Yao <braveyao@webrtc.org>
Commit-Queue: Tomáš Popela <tomas.popela@gmail.com>
Cr-Commit-Position: refs/heads/master@{#25720}
This increases expected value of maximum buffer level in VP8/9 tests
up to 1 second and thus alignes it with the value that WebRTC uses by
default for these codecs.
Bug: webrtc:10017
Change-Id: I8fd41e8006f11c230d844a053c04656408c2ec97
Reviewed-on: https://webrtc-review.googlesource.com/c/111503
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25716}
In this CL a more precise estimation of the Erle is introduced. This is done by creating different estimators that are specialized in different regions of the linear filter. An estimation of which regions were used for generating the current echo estimate is performed and used for selecting the right Erle estimator.
Bug: webrtc:9961
Change-Id: Iba6eb24596c067c3c66d40df590be379d3e1bb7b
Reviewed-on: https://webrtc-review.googlesource.com/c/109400
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25707}
Instead of optionally compile VP9 source files based on the value of
the GN argument 'rtc_libvpx_build_vp9', this CL uses the preprocessor
macro RTC_ENABLE_VP9 to decide if VP9 related code needs to be compiled
or not.
Bug: None
Change-Id: I5c1b69d7ec35e8446181d98c912277d0ae8fdba2
Reviewed-on: https://webrtc-review.googlesource.com/c/111063
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25685}
the bug in RtcpReceiver was fixed Jan 30, i.e. 10.5 month ago
Bug: webrtc:8805
Change-Id: I5f5f00fba5e984ede906c5dbbe841ee5f4992e09
Reviewed-on: https://webrtc-review.googlesource.com/c/99822
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25683}
RTC_ENABLE_VP9 is more natural to deal with then RTC_DISABLE_VP9.
In all the places this macro is used, WebRTC needs to do more things
so it is easier to "do more if RTC_ENABLE_VP9 is defined" than
"do more if RTC_DISABLE_VP9 is not defined".
Bug: None
Change-Id: If992e5c554173e6af3f030f6e0fd21bd82acf9eb
No-Try: True
Reviewed-on: https://webrtc-review.googlesource.com/c/111242
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25679}
There have been several bugs where the members of PlayoutDelay were
zero initialized when handling RTP packets without the corresponding
extensions. Initializing to {-1, -1} (meaning not provided) is less
brittle.
Bug: None
Change-Id: I196850377128d5e67a19bdaf9298403b2e9f5a6e
Reviewed-on: https://webrtc-review.googlesource.com/c/111181
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25670}
The header modules/audio_device/include/audio_device_default.h was not
owned by any build target.
Bug: webrtc:8946
Change-Id: I3266a613c10963688c3bea701384e1d1bb68daac
Reviewed-on: https://webrtc-review.googlesource.com/c/111201
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25669}