Set EchoCanceller3Config::echo_removal_control.has_clock_drift when clock drift is expected
Categories
(Core :: WebRTC: Audio/Video, enhancement)
Tracking
()
Tracking | Status | |
---|---|---|
firefox126 | --- | fixed |
People
(Reporter: karlt, Assigned: karlt)
References
(Blocks 1 open bug)
Details
Attachments
(12 files)
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
Bug 1887774 rename ConnectToNativeDevice introspection function to ConnectedToNativeDevice r?chunmin
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review | |
48 bytes,
text/x-phabricator-request
|
Details | Review |
Andreas pointed out the has_clock_drift
configuration for AudioProcessing
, which may help the echo canceller when it struggles due to clock drift with a secondary audio output or input.
This parameter was initially introduced because setups with clock-drift are generally difficult to handle for echo cancellers, but it had no effect at that time. It was later used, when echo suppression was reduced for dominant near end, so as not to reduce echo suppression when clock drift is expected. Calls with clock drift tend to have less accurate linear filters. The parameter forces limiting of the high frequency gains to avoid echo leakage due to an imperfect filter.
Even without this parameter set, aec3 attempts to detect clock drift and apply the same limiting if detected. The ClockdriftDetector
, however, did not detect drift, even when the AudioProcessing successfully cancels echo at 1.002 drift.
The only API to set has_clock_drift
for an AudioProcessing
is an EchoCanceller3Factory
, which must be set when constructing the AudioProcessing
. The echo controller is always enabled regardless of Config::echo_canceller::enabled
if echo_control_factory_
is set.
Assignee | ||
Comment 1•8 months ago
|
||
Assignee | ||
Comment 2•8 months ago
|
||
Without PREF_CUBEB_FORCE_SAMPLE_RATE in gInitCallbackPrefs, content processes
did not see the pref value unless the pref was changed during the lifetime of
the content process.
Depends on D206863
Assignee | ||
Comment 3•8 months ago
|
||
Depends on D206864
Assignee | ||
Comment 4•8 months ago
|
||
This clarifies that config, pass-through, and input channel count are all set
in the same way.
It will also facilitate delayed AudioProcessing construction in a subsequent
patch.
Depends on D206865
Assignee | ||
Comment 5•8 months ago
|
||
mPacketizerInput won't need to be re-created for every channel count change if
no processing is done for some channel counts.
More signficantly, this will facilitate delaying, in a subsequent patch,
AudioProcessing construction while its parameters may still be changing.
Depends on D206866
Assignee | ||
Comment 6•8 months ago
|
||
The benefit is that whether the DeviceInputTrack or reverse stream could be
affected by clock drift is more likely to be known, and so recreation of
mAudioProcessing will be less likely when, in a subsequent patch, the
AudioProcessing needs to be replaced when the possibility of drift changes.
mSkipProcessing and mRequestedInputChannelCount are now replaced by their
MediaEnginePrefs equivalents. The AudioInputProcessing now starts in
pass-through mode, consistent with its initial AEC, AGC, and noise suppression
settings.
Depends on D206867
Assignee | ||
Comment 7•8 months ago
|
||
Depends on D206868
Assignee | ||
Comment 8•8 months ago
|
||
Depends on D206869
Assignee | ||
Comment 9•8 months ago
|
||
from a secondary input or output device.
Depends on D206870
Assignee | ||
Comment 10•8 months ago
|
||
Depends on D206871
Assignee | ||
Comment 11•8 months ago
|
||
The pref name is chosen for consistency with
https://phabricator.services.mozilla.com/D205940?id=842393
Depends on D206872
Updated•8 months ago
|
Assignee | ||
Comment 12•8 months ago
|
||
from a secondary input or output device.
Depends on D206871
Assignee | ||
Comment 13•8 months ago
|
||
This change helps echo cancellation but drift still makes cancellation less effective than when there is no drift.
Assignee | ||
Updated•8 months ago
|
Comment 14•8 months ago
|
||
Comment 15•8 months ago
|
||
Comment 16•8 months ago
|
||
Comment 17•8 months ago
|
||
Comment 18•8 months ago
|
||
Comment 19•8 months ago
|
||
Comment 20•8 months ago
|
||
Comment 21•8 months ago
|
||
Comment 22•8 months ago
|
||
Comment 23•8 months ago
•
|
||
Backed out for causing gtest failures.
Failure logs:
- https://treeherder.mozilla.org/logviewer?job_id=454251246&repo=autoland
- https://treeherder.mozilla.org/logviewer?job_id=454249539&repo=autoland&lineNumber=7087
- https://treeherder.mozilla.org/logviewer?job_id=454249304&repo=autoland&lineNumber=36777
Backout link: https://hg.mozilla.org/integration/autoland/rev/d716a1ee0fdad80a3f1cbaa89295e06b1584de7c
Comment 24•8 months ago
|
||
Comment 25•8 months ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/a0902541309d
https://hg.mozilla.org/mozilla-central/rev/679472e2bd34
https://hg.mozilla.org/mozilla-central/rev/399bfc5051b2
https://hg.mozilla.org/mozilla-central/rev/5d2d7dc377c8
https://hg.mozilla.org/mozilla-central/rev/deb37d76e032
https://hg.mozilla.org/mozilla-central/rev/e9eb44aa2ffa
https://hg.mozilla.org/mozilla-central/rev/bd2cdabcc883
Assignee | ||
Comment 26•8 months ago
•
|
||
(In reply to Cosmin Sabou [:CosminS] from comment #23)
Backed out for causing gtest failures.
Failure logs:
Thanks.
https://phabricator.services.mozilla.com/D206868?vs=847872&id=848372#toc addresses this.
This looks like bug 1867766.
https://phabricator.services.mozilla.com/D206865 might plausibly make this more or less frequent.
Please feel free to back out 399bfc5051b2 if that seems to be making those failures more frequent.
Comment 27•8 months ago
|
||
Comment 28•8 months ago
|
||
Comment 29•8 months ago
|
||
Assignee | ||
Updated•8 months ago
|
Comment 30•8 months ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/c06840f719aa
https://hg.mozilla.org/mozilla-central/rev/6c8ba616b1c4
https://hg.mozilla.org/mozilla-central/rev/df631cf3e2aa
https://hg.mozilla.org/mozilla-central/rev/ebe948d4a99a
https://hg.mozilla.org/mozilla-central/rev/b2da6f77d3ad
Description
•