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}
Expected checksums depend on whether libopus is built with SSE or not.
Since we have no robust way to know that and we cannot enforce all
clients to use SSE, we accept both results.
Bug: webrtc:9530
Bug: webrtc:9995
Change-Id: I9f0464ffec15df91eafe15d89c61e2140f341cb1
Reviewed-on: https://webrtc-review.googlesource.com/c/110789
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25633}
Downstream projects need to be able to configure ANA without hacking or redefining protos.
Bug: webrtc:9719
Change-Id: Idd80471066ff41a9265adbdb738cc98cc97b2e6e
Reviewed-on: https://webrtc-review.googlesource.com/c/110765
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Commit-Queue: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25629}
The content_unittests failure was caused by wrong path in the cfi
blacklist (when the files from x11 folder were moved to the linux
folder by this change).
Bug: chromium:682122
Change-Id: I4f7f6c5a73a981feeac18494749f85935e812981
Reviewed-on: https://webrtc-review.googlesource.com/c/110461
Commit-Queue: Tomáš Popela <tomas.popela@gmail.com>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Brave Yao <braveyao@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25621}
This CL makes possible to choose the level estimation for the adaptive
digital GC of AGC2. The options are RMS (default and currently used
estimator) and peak-based (already computed, but not used).
Besides adding the new AGC2 config param for the level estimator, this CL
also refactors the config class by making it more structured.
Bug: webrtc:7494
Change-Id: I20eb558ca50f13536aa7bdea08d21de3b630f8bc
Reviewed-on: https://webrtc-review.googlesource.com/c/110144
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25620}
We want to get rid of the whole thing, really, but these two were
easy.
Bug: webrtc:8396
Change-Id: I9292bf077caca171c9f5fe63695b6333cf22547d
Reviewed-on: https://webrtc-review.googlesource.com/c/104763
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25618}
This prevents printing warning messages when the extensions aren't
found. The real parsing is done deeper in the stack and is unaffected.
Bug: webrtc:9510
Change-Id: Idf09f0e69c223bd4217be7044d21d1d0bbbdab92
Reviewed-on: https://webrtc-review.googlesource.com/c/110615
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25612}
This won't be perfect since the peeked value will be noisy, but since we
cap it with the starting rate, it should only improve things.
Bug: webrtc:9718
Change-Id: Id2cf42fb85c8d7126f6d538a3982d65caa7a75b7
Reviewed-on: https://webrtc-review.googlesource.com/c/109926
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25604}
Make averaging test in NtpEstimator less sensitive.
TESTED=Locally patched into chrome and tested on 1st party software and in video_loopback. All produced parameters looked reasonable.
Bug: webrtc:9698
Change-Id: Idc5e80c657ef190dc95da1e27d1288ff9eddd139
Reviewed-on: https://webrtc-review.googlesource.com/c/110500
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25603}
After this CL, all audio encoders have to be injected by the caller.
This means that there is no special "built-in" set of codecs, and
users won't have to pay the binary size and security costs of codecs
they aren't using.
Bug: webrtc:8396
Change-Id: Idb0959ce395940c8bb3bbb49256cdcd84fc87bb6
Reviewed-on: https://webrtc-review.googlesource.com/c/103821
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25600}