This CL exposes the parameter for adjusting the AEC3 performance
for large rooms.
Bug: webrtc:7519
Review-Url: https://codereview.webrtc.org/2967603002
Cr-Commit-Position: refs/heads/master@{#18862}
(This got reverted because of a problem with the Opus encoder parts.
Re-landing without changes.)
BUG=webrtc:7837
Review-Url: https://codereview.webrtc.org/2950453002
Cr-Commit-Position: refs/heads/master@{#18855}
This was previously reverted, because external projects were using the
internal webrtc::AudioEncoderOpus class and broke when it was renamed.
This re-land avoids renaming it immediately, to give those projects
time to adapt. It also has to revert some of the changes I had made to the
Config struct, since that was also used by the same external projects.
BUG=webrtc:7831
Review-Url: https://codereview.webrtc.org/2948483002
Cr-Commit-Position: refs/heads/master@{#18852}
Due to the implementation of the analog AGC in the audio
processing module, the detection for the analog gain done in AEC3
fails on some platforms where there is no analog gain to control.
This CL removes that functionality until the AGC behavior has
been corrected.
Bug: webrtc:7910, chromium:738322
Change-Id: Ibdbe1e02252387dfd94b36ba7471f5c56ae27f48
Reviewed-on: https://chromium-review.googlesource.com/556040
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18850}
This CL loosens the requirement on the API jitter in APM
that can be tolerated without affecting the AEC3 performance.
BUG=webrtc:7911,chromium:738323
Review-Url: https://codereview.webrtc.org/2967493004
Cr-Commit-Position: refs/heads/master@{#18849}
Leaving compatibility script in webrtc/tools/compare_videos.py to
avoid breaking our video quality tests in Chromium.
Forwarding GN targets are left in webrtc/tools/BUILD.gn.
BUG=webrtc:7855
NOTRY=True
NOPRESUBMIT=True
Review-Url: https://codereview.webrtc.org/2965593002
Cr-Commit-Position: refs/heads/master@{#18848}
[This CL is a rebase of an original CL by solenberg@:
https://codereview.webrtc.org/2948763002/ which in turn was a
rebase of an original CL by peah@:
https://chromium-review.googlesource.com/c/527032/]
Allow an external audio processing module to be used in WebRTC
This CL adds support for optionally using an externally created audio
processing module in a peerconnection. The ownership is shared
between the peerconnection and the external creator of the module.
As part of this the internal ownership of the audio processing module
is moved from VoiceEngine to WebRtcVoiceEngine.
BUG=webrtc:7775
Review-Url: https://codereview.webrtc.org/2961723004
Cr-Commit-Position: refs/heads/master@{#18837}
Remove video codec settings from CodecParams (and rename to ProcessParams).
Removes intermediate step of configuring video settings via CodecParams.
BUG=webrtc:6634
Review-Url: https://codereview.webrtc.org/2956243002
Cr-Commit-Position: refs/heads/master@{#18830}
Reason for revert:
Fix RtpStreamReceiver to not recover RTX packets with incorrect SSRC.
Original issue's description:
> Revert of Only compare sequence numbers from the same SSRC in ForwardErrorCorrection. (patchset #5 id:120001 of https://codereview.webrtc.org/2893293003/ )
>
> Reason for revert:
> Breaks fuzzer.
>
> Original issue's description:
> > Only compare sequence numbers from the same SSRC in ForwardErrorCorrection.
> >
> > Prior to this CL, the ForwardErrorCorrection state would be reset whenever
> > the difference in sequence numbers of the last recovered media packet
> > and the new packet (media or FEC) was too large. This comparison did not
> > take into account that FlexFEC uses a different SSRC for the FEC packets,
> > meaning that the the state would be reset very frequently when FlexFEC
> > is used. This should not have led to any major problems, except for a
> > decreased decoding efficiency.
> >
> > This CL verifies that whenever we compare sequence numbers in
> > ForwardErrorCorrection, they do indeed belong to the same SSRC.
> >
> > BUG=webrtc:5654
> >
> > Review-Url: https://codereview.webrtc.org/2893293003
> > Cr-Commit-Position: refs/heads/master@{#18399}
> > Committed: 1476a9d789
>
> TBR=stefan@webrtc.org,holmer@google.com
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:5654
>
> Review-Url: https://codereview.webrtc.org/2919313005
> Cr-Commit-Position: refs/heads/master@{#18446}
> Committed: 92732ecc5cR=stefan@webrtc.org
BUG=webrtc:5654
Review-Url: https://codereview.webrtc.org/2918333002
Cr-Commit-Position: refs/heads/master@{#18827}
Don't disable fec for packets without timing frames extension
even if they are marked as belonging to timing frames.
BUG=webrtc:7894
Review-Url: https://codereview.webrtc.org/2956263002
Cr-Commit-Position: refs/heads/master@{#18826}
Some .proto files have newline at the end. This CL levels all our .proto
files. A presubmit check will follow.
NOTRY=True
TBR=minyue@webrtc.org
Bug: None
Change-Id: I988fe94c31abf91c85a45b564c488329d677b958
Reviewed-on: https://chromium-review.googlesource.com/552137
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18823}
Reland the base->rtc_base without adding stub headers (will be
done in follow-up CL). This preserves git blame history of all files.
BUG=webrtc:7634
NOTRY=True
TBR=kwiberg@webrtc.org
Change-Id: Iea3bb6f3f67b8374c96337b63e8f5aa3e6181012
Reviewed-on: https://chromium-review.googlesource.com/554611
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18821}
Will reland in two different commits to preserve git blame history.
BUG=webrtc:7634
NOTRY=True
TBR=kwiberg@webrtc.org
Change-Id: I550da8525aeb9c5b8f96338fcf1c9714f3dcdab1
Reviewed-on: https://chromium-review.googlesource.com/554610
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18820}
This refactoring takes a careful approach to avoid rushing the change:
* stub headers are left in all the old locations of webrtc/base
* existing GN targets are kept and now just forward to the moved ones
using public_deps.
The only exception to the above is the base_java target and its .java files,
which were moved to webrtc/rtc_base right away since it's not possible
to use public_deps for android_library.
To avoid breaking builds, a temporary Dummy.java file was added to
the new intermediate target in webrtc/rtc_base:base_java as well to avoid
hitting a GN assert in the android_library template.
The above approach should make the transition smooth without breaking
downstream.
A helper script was created (https://codereview.webrtc.org/2879203002/)
and was run like this:
stub-headers.py -s webrtc/base -d webrtc/rtc_base -i 7634
stub-headers.py -s webrtc/base/numerics -d webrtc/rtc_base/numerics -i 7634
Fixed invalid header guards in the following files:
webrtc/base/base64.h
webrtc/base/cryptstring.h
webrtc/base/event.h
webrtc/base/flags.h
webrtc/base/httpbase.h
webrtc/base/httpcommon-inl.h
webrtc/base/httpcommon.h
webrtc/base/httpserver.h
webrtc/base/logsinks.h
webrtc/base/macutils.h
webrtc/base/nattypes.h
webrtc/base/openssladapter.h
webrtc/base/opensslstreamadapter.h
webrtc/base/pathutils.h
webrtc/base/physicalsocketserver.h
webrtc/base/proxyinfo.h
webrtc/base/sigslot.h
webrtc/base/sigslotrepeater.h
webrtc/base/socket.h
webrtc/base/socketaddresspair.h
webrtc/base/socketfactory.h
webrtc/base/stringutils.h
webrtc/base/testbase64.h
webrtc/base/testutils.h
webrtc/base/transformadapter.h
webrtc/base/win32filesystem.h
Added new header guards to:
sslroots.h
testbase64.h
BUG=webrtc:7634
NOTRY=True
NOPRESUBMIT=True
R=kwiberg@webrtc.org
Review-Url: https://codereview.webrtc.org/2877023002 .
Cr-Commit-Position: refs/heads/master@{#18816}
A recent update of Windows 10 blocks IDXGIAdapter::EnumOutputs() in session 0,
so ScreenCapturerWinDirectx::IsSupported() always returns false in session 0. We
should ensure ScreenCapturerWinDirectx can respond correctly in session 0.
Meanwhile, this change looses the requirement of DirectX capturer: it still
works if some of the video adapters do not support DirectX 11 or
IDXGIOutputDuplication. This issue usually happens when handling a virtual video
adapter.
BUG=webrtc:7809
Review-Url: https://codereview.webrtc.org/2937663003
Cr-Commit-Position: refs/heads/master@{#18797}
Dont do a normal AimdRateControlUpdate update after a probe. Only set result.updated if the bitrate estimate has changed.
BUG=webrtc:7866
Review-Url: https://codereview.webrtc.org/2949203002
Cr-Commit-Position: refs/heads/master@{#18785}
This CL corrects the initialization of the AEC3, as well
as for the other submodules in the whole audio processing module
in the sense that it properly update the submodule states also
for the case when reinitialization is trigger from the render
side of the audio processing module.
Bug: chromium:736889,webrtc:7879
Change-Id: I423e963835d0c3227caa8e186b29031bcb912515
Reviewed-on: https://chromium-review.googlesource.com/549315
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18784}
Patch set 1 is a reland + trivial rebase.
Patch set >= 2 contains bug fixes.
> Original issue's description:
> > Fix bug in vie_encoder.cc which caused channel parameters not to be updated at regular intervals, as it was intended.
> >
> > That however exposes a bunch of failed test, so this CL also fixed a few other things:
> > * FakeEncoder should trust the configured FPS value rather than guesstimating itself based on the realtime clock, so as not to completely undershoot targets in offline mode. Also, compensate for key-frame overshoots when outputting delta frames.
> > * FrameDropper should not assuming incoming frame rate is 0 if no frames have been seen.
> > * Fix a bunch of test cases that started failing because they were relying on the fake encoder undershooting.
> > * Fix test
> >
> > BUG=7664
> >
> > Review-Url: https://codereview.webrtc.org/2883963002
> > Cr-Commit-Position: refs/heads/master@{#18473}
> > Committed: 6431e21da6
BUG=webrtc:7664
Review-Url: https://codereview.webrtc.org/2953053002
Cr-Commit-Position: refs/heads/master@{#18782}
This CL corrects the computation of the delay headroom so that
it is only updated when the delay is updated. This is important
as otherwise a too large headroom will be reported, which then
could cause buffer access issues.
Bug: webrtc:7878, chromium:736893
Change-Id: Ib37cb608b064dd5d4df3f8fc423448ee80ed0106
Reviewed-on: https://chromium-review.googlesource.com/549335
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18781}
Occurrences of WEBRTC_TRACE(...) will in the future be replaced with the preferred logging mechanism LOG(...). That will be done with a script that runs 'git cl format' on diffs, which will break formatting of surrounding code if the file is not already formatted. Hence this CL.
BUG=webrtc:5118
Review-Url: https://codereview.webrtc.org/2953793002
Cr-Commit-Position: refs/heads/master@{#18766}
While building Chrome with the VC++ 2017 /permissive- flag I got a
warning about a forward declaration of enum RateControlRegion. Untyped
forward declarations of enums are illegal because the compiler doesn't
know what size to make them. The only reason this forward declaration is
legal is because it isn't needed (the type is already defined).
This was found because /permissive- (or, equivalently for this purpose,
/w14471) incorrectly fires on this forward declaration even though it is
legal.
BUG=chromium:736059
Review-Url: https://codereview.webrtc.org/2834753002
Cr-Commit-Position: refs/heads/master@{#18741}
It was included twice. In both of these targets:
webrtc/modules/audio_processing:{audio_processing_tests,
audio_processing_unittests}
In audio_processing_tests, the new unit tests were added to
public_deps, which (we think) somehow caused webrtc:webrtc_tests
to list the AecDump tests, to much confusion.
Bug: webrtc:7404
Change-Id: I5788d93fef00d30a523312f317dde90eb64db8de
Reviewed-on: https://chromium-review.googlesource.com/543120
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18715}
We'd like to remove all occurrences of WEBRTC_TRACE and delete the
macro! One logging mechanism is enough.
NOTRY=True
Bug: webrtc:5118
Change-Id: Ic226318e0aebe3a71785fcb4ce07371872ab7128
Reviewed-on: https://chromium-review.googlesource.com/518133
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18712}
Reenable pacer_exit timestamp updates for the timing frames and
exclude timing-frames carrying packets from the FEC.
BUG=webrtc:7859
Review-Url: https://codereview.webrtc.org/2947133002
Cr-Commit-Position: refs/heads/master@{#18702}
Floating-point calculations are not guaranteed to happen at compile time
unless you force the issue with constexpr. This initializer was found
by running tools\win\static_initializers on a canary build
chrome_child.dll. constexpr was added to kSilenceRms for consistency.
BUG=chromium:341941
Review-Url: https://codereview.webrtc.org/2943833002
Cr-Commit-Position: refs/heads/master@{#18684}
The network stats used to be polled from the NetEq object once at the
very end of the simulation. With this change, the stats are polled
once every second, and then aggregated at the end of the run. This
leads to more meaningful numbers.
Bug: webrtc:2692
Change-Id: I9e0f4ddada2f9e42fb9234970deb1af235fffc8c
Reviewed-on: https://chromium-review.googlesource.com/541218
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18682}
This change adds an option to have neteq_rtpplay generate a Matlab
script. When executed in Matlab, the script will generate graphs with
the timing information from the test run.
The script is generated when the flag --matlabplot is passed to
neteq_rtpplay.
The CL also adds better checking and reporting about packets discarded
in the process of finding out the initial sampling rate.
Bug: webrtc:2692, webrtc:7467
Change-Id: I805e7c83b82533142b6e74bf065506e3d60a8170
Reviewed-on: https://chromium-review.googlesource.com/541276
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18680}
On Windows, only four applications can use DXGI duplication APIs concurrently.
So this change adds a reference counter of DxgiDuplicatorController to unload
DXGI components when the reference counter reaches 0.
BUG=webrtc:7808
Review-Url: https://codereview.webrtc.org/2933893003
Cr-Commit-Position: refs/heads/master@{#18668}
BUG=webrtc:7854
Change-Id: I12c33b8558fd49374a55282c391b87fde9e13a28
Reviewed-on: https://chromium-review.googlesource.com/535554
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Reviewed-by: Michael T <tschumim@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18661}
Timing information is gathered in EncodedImage,
starting at encoders. Then it's sent using RTP header extension. In the
end, it's gathered at the GenericDecoder. Actual reporting and tests
will be in the next CLs.
BUG=webrtc:7594
Review-Url: https://codereview.webrtc.org/2911193002
Cr-Commit-Position: refs/heads/master@{#18659}