This CL includes extensive tests to match accept or reject decisions on several different timing setups. The setups are simulated using mocks (by far more light-weight than using actual timing and audio track files).
The client code, the unit tests in this case, passes information about the fake audio tracks to MockWavReaderFactory. MockWavReader instances are then created using the parameters defined in the client code. To improve the readability of the tests, generator_unittest.cc includes a docstring explaining how each MultiEndCallSetup* test is documented.
Run tests as follows:
$ out/Default/modules_unittests --gtest_filter=ConversationalSpeechTest.*
BUG=webrtc:7218
Review-Url: https://codereview.webrtc.org/2781573002
Cr-Commit-Position: refs/heads/master@{#17592}
This CL adds support for handling highly reverberant echoes in
AEC3. The functionality is hardcoded to be have no effect (via
a decay factor of 0), but this CL will be followed by other CLs
for which nonzero decay factors will be allowed.
Apart from this change, this CL also refactors the residual
echo estimation code to make it shorter and more readable.
The changes introduced herein are bitexact (for a decay factor
of 0).
BUG=webrtc:6018
Review-Url: https://codereview.webrtc.org/2804223002
Cr-Commit-Position: refs/heads/master@{#17589}
Reason for revert:
This should be landed after https://codereview.webrtc.org/2791963003.
Original issue's description:
> Revert of Adding PRESUBMIT check on google::protobuf (patchset #2 id:20001 of https://codereview.webrtc.org/2753823003/ )
>
> Reason for revert:
> We have to revert https://codereview.webrtc.org/2747863003 and this CL depends on it.
>
> Original issue's description:
> > Adding PRESUBMIT check on google::protobuf
> >
> > The goal is to avoid direct usage of google::protobuf.
> >
> > It should only be used with a 'using' directive in the header file:
> > //webrtc/base/protobuf_utils.h.
> >
> > BUG=webrtc:7340
> > NOTRY=True
> >
> > Review-Url: https://codereview.webrtc.org/2753823003
> > Cr-Commit-Position: refs/heads/master@{#17467}
> > Committed: dd27055cb7
>
> TBR=kjellander@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:7340
>
> Review-Url: https://codereview.webrtc.org/2791583002
> Cr-Commit-Position: refs/heads/master@{#17481}
> Committed: 515dff40b7TBR=kjellander@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7340
Review-Url: https://codereview.webrtc.org/2792103002
Cr-Commit-Position: refs/heads/master@{#17588}
This CL ensures that the number of bands
for the render side matches that for the capture side
when AEC3 is active. Without this, there was problems
when the render rate is different from the capture rate.
BUG=webrtc:6018
Review-Url: https://codereview.webrtc.org/2800033003
Cr-Commit-Position: refs/heads/master@{#17586}
Reason for revert:
Trying to re-land after solving some related issues.
There are no changes compared to the original CL.
Original issue's description:
> Revert of Loosening the coupling between WebRTC and //third_party/protobuf (patchset #16 id:300001 of https://codereview.webrtc.org/2747863003/ )
>
> Reason for revert:
> I will try to reland next week because it is causing some problems.
>
> Original issue's description:
> > To accommodate some downstream WebRTC users we need to loosen
> > the coupling between our code and the //third_party/protobuf.
> >
> > This includes using typedefs to define strings instead of
> > assuming std::string.
> >
> > After this refactoring it will be possible to link with other
> > protobuf implementations than the current one.
> >
> > We moved the PRESUBMIT check to another CL [1]. The goal of this
> > presubmit is to avoid the direct usage of google::protobuf outside
> > of the webrtc/base/protobuf_utils.h header file.
> >
> > [1] - https://codereview.webrtc.org/2753823003/
> >
> > BUG=webrtc:7340
> > NOTRY=True
> >
> > Review-Url: https://codereview.webrtc.org/2747863003
> > Cr-Commit-Position: refs/heads/master@{#17466}
> > Committed: 16ab93b952
>
> TBR=kjellander@webrtc.org,henrik.lundin@webrtc.org,kwiberg@webrtc.org,michaelt@webrtc.org,peah@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:7340
>
> Review-Url: https://codereview.webrtc.org/2786363002
> Cr-Commit-Position: refs/heads/master@{#17483}
> Committed: d00aad5eb2TBR=kjellander@webrtc.org,henrik.lundin@webrtc.org,kwiberg@webrtc.org,michaelt@webrtc.org,peah@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7340
NOTRY=True
Review-Url: https://codereview.webrtc.org/2791963003
Cr-Commit-Position: refs/heads/master@{#17584}
Previously it was assumed that exactly one device is connected.
Now adb will get an argument with the device ID taken from the runner
script's stdout.
BUG=webrtc:7229
TBR=kjellander@webrtc.org
NOTRY=true
Review-Url: https://codereview.webrtc.org/2783343003
Cr-Commit-Position: refs/heads/master@{#17580}
This CL corrects the behavior during buffer underruns.
Furthermore, it increases the tolerance for API call jitter, and
removes the minimum value for the comfort noise.
BUG=webrtc:6018
Review-Url: https://codereview.webrtc.org/2787123003
Cr-Commit-Position: refs/heads/master@{#17576}
This CL adds fairly significant changes to the echo removal
functionality, the main ones being.
-More centralized control over the echo removal.
-Updated echo suppression gain behavior.
-Significantly increased usage of the linear adaptive filter.
-New echo removal functionality when the linear filter is not usable.
This CL is chained to the CL https://codereview.webrtc.org/2784023002/
BUG=webrtc:6018
Review-Url: https://codereview.webrtc.org/2782423003
Cr-Commit-Position: refs/heads/master@{#17575}
Adds a SetEncoder call to voe::Channel, so that we can move encoder setup outside of Voice Engine.
BUG=webrtc:5806
Review-Url: https://codereview.webrtc.org/2703373006
Cr-Commit-Position: refs/heads/master@{#17572}
Added new callback class that enables routing both the locally recorded
and playout audio data to external module.
A factory method that creates an AudioDeviceModule instance that also
registers the AudioTransportCapture with the device is also added.
BUG=webrtc:7337
R=solenberg@webrtc.org
Review-Url: https://codereview.webrtc.org/2753453002 .
Cr-Commit-Position: refs/heads/master@{#17570}
This CL contains all the changes made to audio_coding while making
audio encoders injectable. Apart from some small changes to
webrtcvoiceengine, nothing here is hooked up to the outside
world. Those changes will be added to a follow-up CL.
BUG=webrtc:5806
Review-Url: https://codereview.webrtc.org/2695243005
Cr-Commit-Position: refs/heads/master@{#17569}
Because on gcc, cast to void doesn't silence the warning. See
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66425
Also add an RTC_ prefix to the macro instead of only defining it if it
wasn't already defined, to ensure that we always get our own version.
BUG=none
Review-Url: https://codereview.webrtc.org/2797983003
Cr-Commit-Position: refs/heads/master@{#17563}
Reason for revert:
The build config is now working again.
Original issue's description:
> CQ: Remove Linux ARM64 Debug trybot from default set.
>
> It appears recent changes in Chromium (crbug.com/708104) is causing
> this to fail.
> Need to disable this to unblock rolling.
>
> BUG=webrtc:7024
> TBR=oprypin@webrtc.org
>
> Review-Url: https://codereview.webrtc.org/2790263003 .
> Cr-Commit-Position: refs/heads/master@{#17521}
> Committed: 5115645c01TBR=oprypin@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7024
Review-Url: https://codereview.webrtc.org/2805603003
Cr-Commit-Position: refs/heads/master@{#17560}
They provide parsing of numbers from char* and std::string into any of
the fundamental integer types. Values are returned
in an rtc::Optional, which is left empty if parsing was unsuccessful.
BUG=webrtc:5806
Review-Url: https://codereview.webrtc.org/2696003004
Cr-Commit-Position: refs/heads/master@{#17557}
The tests have been passing for some time, but were never added.
BUG=webrtc:5572, webrtc:5566
NOTRY=True
Review-Url: https://codereview.webrtc.org/2800813005
Cr-Commit-Position: refs/heads/master@{#17556}
The root cause is because the offset used in DxgiOutputDuplicator should always
depend on the position of the monitor in the system instead of the offset in the
target frame. Otherwise, once switching between two monitors with different
screen size, the updated region in the context would base on the old monitor,
and cause the copied regions to be out of the source DesktopFrame.
This issue also impacts the SpreadContextChange() function, the updated region
stores in the Context should also only depend on the position of the monitor.
BUG=chromium:706797
Review-Url: https://codereview.webrtc.org/2801433002
Cr-Commit-Position: refs/heads/master@{#17548}
This CL adds major render pipeline changes to the AEC3 code. The reason
for these are that
1) It allows the echo removal unit to receive information about the content
in bands beyond band 0, thereby allowing removal of high-frequency
echoes
2) It allows more controlled handling of the render buffers, allowing proper
buffer behaviour during capture glitches and clock-drift.
Unfortunately, the render pipeline caused a lot of related changes in much
of the rest of the AEC3 files. Most of these are, however, caused by
a change of class name.
Another unfortunate effect of this CL, is that a number of unittest cease to
compile. I chose to temporarily solve that by removing them from the
build using #if/#endif. The reason for that is that those will anyway again
need to be changed in the next review, and doing like this avoids them
having to be reviewed twice.
BUG=webrtc:6018
Review-Url: https://codereview.webrtc.org/2784023002
Cr-Commit-Position: refs/heads/master@{#17547}
Because the new API doesn't use constraints, refactors settings to instead have a
video resolution setting.
BUG=webrtc:7177
Review-Url: https://codereview.webrtc.org/2778163005
Cr-Commit-Position: refs/heads/master@{#17545}