Commit Graph

370 Commits

Author SHA1 Message Date
ce66bb4d81 Adding simulcast examples to the fuzzing corpus.
Adding an example of a request to send simulcast (from the PC).
Adding an example of a request to receive simulcast (from the SFU).

Bug: webrtc:10409
Change-Id: I13b689621e2f89f8e00b7ee8bc542157ccebb873
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127621
Reviewed-by: Benjamin Wright <benwright@webrtc.org>
Commit-Queue: Amit Hilbuch <amithi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27116}
2019-03-14 01:10:08 +00:00
1295b0def0 Add basic fuzzing for rtp_header_parser.h/cc.
rtp_header_parser currently has 0% fuzzing coverage. To improve this I have
added a basic fuzzer which fuzzes all of the available paths.

Bug: webrtc:10395
Change-Id: I30324b2bfa7629b0110527258b33b7e048e89fcf
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127040
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27115}
2019-03-13 23:31:16 +00:00
7f3687ce26 Integrate parsing of SCTP messages into WebRTC Fuzzers.
This change adds a basic fuzzer to exercise parsing of SCTP messages.

Bug: webrtc:10395
Change-Id: I1fd7a8560add3463c1978ebcad30082ae31f2073
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127042
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27113}
2019-03-13 20:52:46 +00:00
d6c4b80268 Add Fuzzing support for ParseRtcpPacketSenderSsrc.
This function is called on each incoming RTCP payload.

Bug: webrtc:10395
Change-Id: I164746fe45912cc503565e77046b5d884e0204e6
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127122
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27110}
2019-03-13 17:28:56 +00:00
dfaea9dd98 Fuzz rtc::StringToNumber.
StringToNumber is directly used in parsing the SDP so it should be fuzzed.

Bug: webrtc:10395
Change-Id: I85b520fbefd34d3dba49950c5ff297b482c572b1
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127123
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27089}
2019-03-12 22:05:46 +00:00
6a5e976fbe Add generic depacketizer fuzzer to WebRTC.
The generic video depacketizer was missed in the initial fuzzing pass.

Bug: webrtc:10395
Change-Id: I166f27fc5897a2eafe38dad8e074834fefcc330e
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127041
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27088}
2019-03-12 20:48:19 +00:00
ade5cb8294 Field trial fuzzer.
This simple fuzzer is intended to detect potential issues in the field trial
parsing code. Since these can be set by the browser it is better to have some
fuzzing coverage around this area.

Bug: webrtc:10395
Change-Id: I1b8b859d2107a0bc99cb7520cf0ef96f3d110547
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/127121
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27087}
2019-03-12 20:47:15 +00:00
d71edac904 Add an input size limit to APM fuzzer
The fuzzer times out on too long inputs.
This CL limits tests to 400 000 bytes, ~ 12 seconds of 8 kHz float audio.

Bug: chromium:940209
Change-Id: I86b772f9d8989a8b129d933d25ece3631a6a365f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126780
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27059}
2019-03-11 14:01:09 +00:00
f0cbcd39e7 Use stdlib TaskQueue implementation in webrtc fuzzers
Bug: chromium:939093, webrtc:10191
Change-Id: I90463a1b3a003ff575a61cd8f6351927947759f8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/126221
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27030}
2019-03-08 09:49:31 +00:00
200feba1c0 Make AEC3 the default desktop AEC option in WebRTC
Bug: webrtc:10366
Change-Id: I854ed62df1da489fdab43e9157dff79b7287cacb
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125081
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26983}
2019-03-06 08:43:48 +00:00
07a4f2b267 Merge rtc_task_queue(_api|_impl)? build targets into one
Ignore rtc_link_task_queue_impl flag,
instead use build_with_chromium for custom chromium implementation injection

This changes TaskQueue implementation used in webrtc fuzzers in chromium:
from own webrtc implementation to chromium's.

Bug: webrtc:10191
Change-Id: I63be28b680ae8ea8ee1dbf0c699263c392ce29d3
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/125196
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26977}
2019-03-05 20:13:38 +00:00
87e05b5df5 NetEq fuzzer: lower the maximum fuzzer input size
This avoids timeouts on the server.

Bug: chromium:935089
Change-Id: I8b46664a7cf4d5f14a76b5d034a67453e730eb9e
Reviewed-on: https://webrtc-review.googlesource.com/c/124484
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Commit-Queue: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26940}
2019-03-04 07:54:05 +00:00
fc52b912a3 Implicitly suppress //build/config/clang:find_bad_constructs.
Since there is no way to enable/disable these diagnostics at runtime,
this CL moves the suppression into the rtc_* templates in order to
remove the need to explicitly add the snippet of code needed to
suppress it (currently copy/pasted in 144 locations).

The diagnostic that causes the most problems is the one about "complex
class/struct explicit ctor/dtor" [1] because WebRTC doesn't find
it useful enough.

Other diagnostics are good (for example the one that warns about
using "virtual" instead of "override", but that will be covered by
this clang-tidy check [2]) while others are Chromium related so
they have never triggered.

[1] - https://cs.chromium.org/chromium/src/tools/clang/plugins/FindBadConstructsConsumer.cpp?l=147-167&rcl=b4bebe1aa15dba7ca5fcc6456a81a55665327c3a
[2] - https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-override.html

Bug: webrtc:163
Change-Id: Icbf27efa5b369100a31e6a32df1a0913729b3b34
Reviewed-on: https://webrtc-review.googlesource.com/c/125088
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26918}
2019-03-01 10:18:17 +00:00
7572bb49d6 Fix -Wextra-semi warnings in webrtc fuzzers.
Bug: chromium:935572
Change-Id: Ib060618ca5fb5303e5743cfaec79461dd0aaffe2
Reviewed-on: https://webrtc-review.googlesource.com/c/124440
Reviewed-by: Benjamin Wright <benwright@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Commit-Queue: Nico Weber <thakis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#26845}
2019-02-25 20:45:46 +00:00
a9cfa476fe Revert "Delete rtc_task_queue_impl build target"
This reverts commit 56973e627ee12c42b8dcb1fa506103626f9b24d4.

Reason for revert: Breaks libfuzzer-asan Chromium trybots:
E.g.
https://ci.chromium.org/p/chromium/builders/luci.chromium.try/linux-libfuzzer-asan-rel/112220

Original change's description:
> Delete rtc_task_queue_impl build target
> 
> Bug: webrtc:10191
> Change-Id: I2ba660c403919708d28b5f5f2bdcffdb1e4ee486
> Reviewed-on: https://webrtc-review.googlesource.com/c/124040
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26826}

TBR=danilchap@webrtc.org,mbonadei@webrtc.org

Change-Id: Ic04fc725e0a9cba84584ecf043b39b9d68f69bc7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10191
Reviewed-on: https://webrtc-review.googlesource.com/c/124124
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26828}
2019-02-24 09:17:31 +00:00
56973e627e Delete rtc_task_queue_impl build target
Bug: webrtc:10191
Change-Id: I2ba660c403919708d28b5f5f2bdcffdb1e4ee486
Reviewed-on: https://webrtc-review.googlesource.com/c/124040
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26826}
2019-02-23 13:03:15 +00:00
b4643ad7ba Rename "OnReceivedFrame" to "OnAssembledFrame"
The new name fits better.

Bug: None
Change-Id: I1f201ff07915ed6c18efeefb7380e2b286742bb9
Reviewed-on: https://webrtc-review.googlesource.com/c/123800
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26814}
2019-02-22 10:49:07 +00:00
54047bea1b Reland "Extend TransportSequenceNumber RTP header extension"
This reverts commit 109b5fb5f5b2f46e1798c91c4a024ce26f57f0b0.

Reason for revert: The failing libfuzzer was fixed in commit d6c6f16063b81fc60206618ba06198e34ee0eacb

Original change's description:
> Revert "Extend TransportSequenceNumber RTP header extension"
> 
> This reverts commit 28c7362bc485d22bdc8c744bc725022780187a96.
> 
> Reason for revert: It breaks Linux64 Release (libfuzzer):
> https://logs.chromium.org/logs/webrtc/buildbucket/cr-buildbucket.appspot.com/8921003137877469920/+/steps/compile/0/stdout
> 
> Original change's description:
> > Extend TransportSequenceNumber RTP header extension
> > 
> > Extend TransportSequenceNumber RTP header extension to support
> > feedback on sender request.
> > 
> > Bug: webrtc:10262
> > Change-Id: Ibc1cf18162d15cd102e951c9dc697d8ea536ebb6
> > Reviewed-on: https://webrtc-review.googlesource.com/c/123233
> > Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> > Reviewed-by: Alex Loiko <aleloi@webrtc.org>
> > Commit-Queue: Johannes Kron <kron@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#26766}
> 
> TBR=danilchap@webrtc.org,aleloi@webrtc.org,kron@webrtc.org
> 
> Change-Id: Ie8a73f5fdffd99919ceaa1ae8911a1645f2077e9
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:10262
> Reviewed-on: https://webrtc-review.googlesource.com/c/123522
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26767}

TBR=danilchap@webrtc.org,mbonadei@webrtc.org,aleloi@webrtc.org,kron@webrtc.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: webrtc:10262
Change-Id: I0f854299a46c042cfbdf8b8cc8cd965a228142c8
Reviewed-on: https://webrtc-review.googlesource.com/c/123764
Reviewed-by: Johannes Kron <kron@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26798}
2019-02-21 16:01:30 +00:00
aa1a43e31f AEC3: Use minimum ERLE during onsets
This change disables the ERLE estimation of onsets and instead assumes
minimum ERLE. This reduces the risk of echo leaks during onsets. The
estimated ERLE was sometimes incorrect due to:
- Not enough data to train on.
- Platform noise suppression can change the echo-path.

Bug: chromium:119942,webrtc:10341
Change-Id: I1dd1c0f160489e76eb784f07e99af02f44f387ec
Reviewed-on: https://webrtc-review.googlesource.com/c/123782
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26794}
2019-02-21 14:18:44 +00:00
d6c6f16063 Update RTP packet and header fuzzers to support additional extensions
Bug: webrtc:10262
Change-Id: I0a089329edc43dc004c616933ae8606a41546865
Reviewed-on: https://webrtc-review.googlesource.com/c/123524
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26793}
2019-02-21 13:51:10 +00:00
d5e02f0b92 Delete redundant members from VCMPacket.
The values are available as part of the RTPVideoHeader member.

Bug: None
Change-Id: I832fffc449929badec3796d7096c9cdc0d43d344
Reviewed-on: https://webrtc-review.googlesource.com/c/123234
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26773}
2019-02-20 14:39:10 +00:00
109b5fb5f5 Revert "Extend TransportSequenceNumber RTP header extension"
This reverts commit 28c7362bc485d22bdc8c744bc725022780187a96.

Reason for revert: It breaks Linux64 Release (libfuzzer):
https://logs.chromium.org/logs/webrtc/buildbucket/cr-buildbucket.appspot.com/8921003137877469920/+/steps/compile/0/stdout

Original change's description:
> Extend TransportSequenceNumber RTP header extension
> 
> Extend TransportSequenceNumber RTP header extension to support
> feedback on sender request.
> 
> Bug: webrtc:10262
> Change-Id: Ibc1cf18162d15cd102e951c9dc697d8ea536ebb6
> Reviewed-on: https://webrtc-review.googlesource.com/c/123233
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Alex Loiko <aleloi@webrtc.org>
> Commit-Queue: Johannes Kron <kron@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26766}

TBR=danilchap@webrtc.org,aleloi@webrtc.org,kron@webrtc.org

Change-Id: Ie8a73f5fdffd99919ceaa1ae8911a1645f2077e9
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10262
Reviewed-on: https://webrtc-review.googlesource.com/c/123522
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26767}
2019-02-20 13:11:54 +00:00
28c7362bc4 Extend TransportSequenceNumber RTP header extension
Extend TransportSequenceNumber RTP header extension to support
feedback on sender request.

Bug: webrtc:10262
Change-Id: Ibc1cf18162d15cd102e951c9dc697d8ea536ebb6
Reviewed-on: https://webrtc-review.googlesource.com/c/123233
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Johannes Kron <kron@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26766}
2019-02-20 12:23:45 +00:00
ccb9b759c5 Create version 01 of Generic Frame Descriptor - with discardability flag
The discardability flag denotes whether the frame may be dropped by
the decoder with no effect on the decodability of subsequent frames.

Bug: webrtc:10214
Change-Id: I3654951d8863b50effe9670b8d1d7eb051240039
Reviewed-on: https://webrtc-review.googlesource.com/c/122241
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26763}
2019-02-20 10:31:58 +00:00
421c859351 Remove crit_render_ lock from webrtc::GainControlImpl
The lock is unnecessary and potentially unsafe:
1) All gain_control accesses in AudioProcessingImpl happen - and are intended to happen - while holding the crit_capture_ lock, and all external API calls take the same lock once inside GainControlImpl.
2) If ProcessCaptureStreamLocked (locked by crit_capture) calls a gain_control function that takes crit_render, the mandated locking order (render before capture) is violated and we might get a deadlock with the render thread.

Bug: b/123456404
Change-Id: Id7a888827e347e5e1d50e2f87d90e8b68f52b7b8
Reviewed-on: https://webrtc-review.googlesource.com/c/122087
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26637}
2019-02-11 14:14:40 +00:00
87bbb91469 Add rtp_generator utility to rtc_tools.
This CL introduces a new rtp_generator tool that can be utilized to generate
.rtpdump files that can be replayed by the video_replayer. This allows
automated generation of corpus material for the new WebRTC RTP fuzzers in
addition to allowing anyone who is experimenting with a new RTP feature to
quickly debug issues.

It can be used as follows:
./rtp_generator --input_config=./rtc_tools/rtp_generator/configs/vp8.json --output_rtpdump=/tmp/vp8.rtpdump
./video_replay --config_file test/fuzzers/configs/replay_packet_fuzzer/vp8_config.json --input_file /tmp/vp8.rtpdump

It works by generating squares randomly on the screen for a given duration. This
initial version is very limited and doesn't support FEC, RED and other
configurations. I plan to extend it to support these in future CLs.

Bug: webrtc:10117
Change-Id: I31d3dbb6fad73c727145ead4e7d085113d11fc51
Reviewed-on: https://webrtc-review.googlesource.com/c/119964
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26517}
2019-02-01 18:36:19 +00:00
68d6d44197 AEC3: Remove remaining kill-switches
This CL concludes the post-launch removal of kill-switches is AEC3.

Kill-switches removed:
WebRTC-Aec3AdaptErleOnLowRenderKillSwitch
WebRTC-Aec3AgcGainChangeResponseKillSwitch
WebRTC-Aec3BoundedNearendKillSwitch
WebRTC-Aec3EarlyShadowFilterJumpstartKillSwitch
WebRTC-Aec3EnableAdaptiveEchoReverbEstimation
WebRTC-Aec3EnforceSkewHysteresis1
WebRTC-Aec3EnforceSkewHysteresis2
WebRTC-Aec3FilterAnalyzerPreprocessorKillSwitch
WebRTC-Aec3MisadjustmentEstimatorKillSwitch
WebRTC-Aec3OverrideEchoPathGainKillSwitch
WebRTC-Aec3RapidAgcGainRecoveryKillSwitch
WebRTC-Aec3ResetErleAtGainChangesKillSwitch
WebRTC-Aec3ShadowFilterBoostedJumpstartKillSwitch
WebRTC-Aec3ShadowFilterJumpstartKillSwitch
WebRTC-Aec3SmoothSignalTransitionsKillSwitch
WebRTC-Aec3SmoothUpdatesTailFreqRespKillSwitch
WebRTC-Aec3SoftTransparentModeKillSwitch
WebRTC-Aec3StandardNonlinearReverbModelKillSwitch
WebRTC-Aec3StrictDivergenceCheckKillSwitch
WebRTC-Aec3UseOffsetBlocks
WebRTC-Aec3UseStationarityPropertiesKillSwitch
WebRTC-Aec3UtilizeShadowFilterOutputKillSwitch
WebRTC-Aec3ZeroExternalDelayHeadroomKillSwitch
WebRTC-Aec3FilterQualityStateKillSwitch
WebRTC-Aec3NewSaturationBehaviorKillSwitch
WebRTC-Aec3GainLimiterDeactivationKillSwitch
WebRTC-Aec3EnableErleUpdatesDuringReverbKillSwitch

The change has been tested for bit-exactness.

Bug: webrtc:8671
Change-Id: I42816b9d1c875cec0347034c6e2ed4ff5db6ec0f
Reviewed-on: https://webrtc-review.googlesource.com/c/119942
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26443}
2019-01-29 10:31:45 +00:00
d970807e0c Remove rtc_base/scoped_ref_ptr.h.
The type rtc::scoped_refptr<T> is now part of api/. Please include it from
api/scoped_refptr.h.

More info: See: https://groups.google.com/forum/#!topic/discuss-webrtc/Mme2MSz4z4o.

Bug: webrtc:9887, webrtc:8205
No-Try: True
Change-Id: Ic6c7c81e226e59f12f7933e472f573ae097b55bf
Reviewed-on: https://webrtc-review.googlesource.com/c/119041
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26414}
2019-01-25 20:29:58 +00:00
99ec6f39b9 AEC3: Remove unused kill-switches from AdjustConfig
Kill-switches removed:
WebRTC-Aec3UseShortDelayEstimatorWindow
WebRTC-Aec3ReverbBasedOnRenderKillSwitch
WebRTC-Aec3ReverbModellingKillSwitch
WebRTC-Aec3EnableUnityInitialRampupGain
WebRTC-Aec3EnableUnityNonZeroRampupGain
WebRTC-Aec3ShortReverbKillSwitch
WebRTC-Aec3NewFilterParamsKillSwitch
WebRTC-Aec3EnableLegacyDominantNearend
WebRTC-Aec3UseLegacyNormalSuppressorTuning
WebRTC-Aec3UseStationarityProperties
WebRTC-Aec3UseStationarityPropertiesAtInit
WebRTC-Aec3EarlyDelayDetectionKillSwitch

The change is tested for bit-exactness.

Bug: webrtc:8671
Change-Id: Ic7638002c0ca1bc5fc911e048285134c4df5d134
Reviewed-on: https://webrtc-review.googlesource.com/c/119921
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26403}
2019-01-25 13:37:13 +00:00
e47433f017 AEC3: Remove legacy render buffering
This CL removes the legacy, no longer used, render buffering code. It
also removes four unused parameters from the AEC3 config. The change
is tested for bit-exactness.

Bug: webrtc:8671
Change-Id: I2bb6cb7a1097863f228767d757d551c00593bb00
Reviewed-on: https://webrtc-review.googlesource.com/c/119701
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26399}
2019-01-25 08:31:12 +00:00
c6521a73dd Add benwright@webrtc.org to test/fuzzers/OWNERS.
I am planning to do a lot of work on adding additional fuzzing to WebRTC in Q1
of 2019. Given the limited number of available owners in this directory, and it
being non-prod I think this makes sense.

Bug: webrtc:10117
Change-Id: If2ad52fbce120c4d2bce51f4bfed99d83d78e6a5
Reviewed-on: https://webrtc-review.googlesource.com/c/117043
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26250}
2019-01-14 17:45:20 +00:00
235131303b Add noise suppression settings to AudioProcessing::Config
This Config configuration will eventually replace the AudioProcessing::noise_suppression() interface.

This also introduces a proxy NoiseSuppression, returned by AudioProcessing::noise_suppression.
Without this proxy, ApplyConfig could overwrite NS settings for clients who currently use noise_suppression(). For example, the following code will not preserve the noise suppression level:

apm->noise_suppression()->set_level(NoiseSuppression::kHigh);
auto cfg = apm->GetConfig();
apm->ApplyConfig(cfg);

The NoiseSuppression instance returned by noise_suppression() has no way to update the config inside APM, so GetConfig() will return an out-of-date config which is then re-applied. This CL adds a proxy that makes this update, by forwarding Enable() and set_level() calls to ApplyConfig().

Drive-by change: AudioProcessing::Config substructs are reordered to mirror the capture processing pipeline.

Tested: Ran ToT and this CL builds of audioproc_f and verified identical settings/aecdumps.
Bug: webrtc:9947
Change-Id: I823eade894be115c254d656562564108b2b63b1f
Reviewed-on: https://webrtc-review.googlesource.com/c/116521
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26248}
2019-01-14 16:17:19 +00:00
5d7cf3d4eb Fix RTC_CHECK in neteq_rtp_fuzzer
The change in
https://webrtc-review.googlesource.com/c/116683 made the fuzzer crash
at startup.

Bug: chromium:921050, webrtc:10185
Change-Id: Ie3eb26e12b4ae9b29c1c424af0d3eb287b5f1a73
Reviewed-on: https://webrtc-review.googlesource.com/c/117261
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26238}
2019-01-14 12:24:02 +00:00
10542f21c8 (4) Rename files to snake_case: update BUILD.gn, include paths, header guards, and DEPS entries
Mechanically generated by running this command:

tools_webrtc/do-renames.sh update all-renames.txt && git cl format

Then manually updating:

tools_webrtc/sanitizers/tsan_suppressions_webrtc.cc

Bug: webrtc:10159
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I54824cd91dada8fc3ee3d098f971bc319d477833
Reviewed-on: https://webrtc-review.googlesource.com/c/115653
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26226}
2019-01-11 17:11:39 +00:00
0554368eed Delete method DecoderDatabase::RegisterPayload(...NetEqDecoder...)
Bug: webrtc:10185
Change-Id: I69ce40b1c7267b039cd1d2237c5d5bbae3a81875
Reviewed-on: https://webrtc-review.googlesource.com/c/116683
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26208}
2019-01-11 07:39:45 +00:00
bd6dee89d4 Delete NetEqTest::ExtDecoderMap
Bug: webrtc:10080
Change-Id: Ica2c3b8b94bd31cd3af98b2e918dafc223c341ef
Reviewed-on: https://webrtc-review.googlesource.com/c/115417
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26164}
2019-01-08 16:25:05 +00:00
6c330ab63f Update some audio processing tests to new VAD API
This updates some tests to use AudioProcesing::Config() and
AudioProcessing::GetStatistics() instead.

Some tests are left with voice_detection() because
a) not all tests make sense to run both APIs in parallel, and
b) we want test coverage of the old VoiceDetection until it is removed.

Bug: webrtc:9947
Change-Id: Ifb21a1e6e931d7ad3c3a4e38f5cc4f146da3c9a3
Reviewed-on: https://webrtc-review.googlesource.com/c/116160
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26134}
2019-01-04 10:31:42 +00:00
3f651d80a0 Reland "Add AudioDecoderFactory to NetEqTest constructor."
This is a reland of daa970f33e1923c5651a4a63c18e3d5361d0a795

Original change's description:
> Add AudioDecoderFactory to NetEqTest constructor.
>
> Update EventLogAnalyzer to not depend on builtin audio decoders.
>
> Bug: webrtc:8396, webrtc:10080
> Change-Id: Ie02ed9cda6d4f11bfdf2e65eb6482283b7520738
> Reviewed-on: https://webrtc-review.googlesource.com/c/114301
> Reviewed-by: Alex Loiko <aleloi@webrtc.org>
> Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26026}

Tbr: kwiberg@webrtc.org
Bug: webrtc:8396, webrtc:10080
Change-Id: I598ce1cd41676b1992b0973b09476eeeb0e602d2
Reviewed-on: https://webrtc-review.googlesource.com/c/114940
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26058}
2018-12-19 15:08:47 +00:00
f7f753b320 Revert "Add AudioDecoderFactory to NetEqTest constructor."
This reverts commit daa970f33e1923c5651a4a63c18e3d5361d0a795.

Reason for revert: Speculative revert due to downstream breakage

Original change's description:
> Add AudioDecoderFactory to NetEqTest constructor.
>
> Update EventLogAnalyzer to not depend on builtin audio decoders.
>
> Bug: webrtc:8396, webrtc:10080
> Change-Id: Ie02ed9cda6d4f11bfdf2e65eb6482283b7520738
> Reviewed-on: https://webrtc-review.googlesource.com/c/114301
> Reviewed-by: Alex Loiko <aleloi@webrtc.org>
> Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26026}

TBR=mbonadei@webrtc.org,aleloi@webrtc.org,kwiberg@webrtc.org,terelius@webrtc.org,nisse@webrtc.org,ivoc@webrtc.org

No-Try: True
Bug: webrtc:8396, webrtc:10080
Change-Id: Ided750d8ed800d8a38f7cce8f72095d8ed1bc6cb
Reviewed-on: https://webrtc-review.googlesource.com/c/114552
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26030}
2018-12-17 15:16:30 +00:00
daa970f33e Add AudioDecoderFactory to NetEqTest constructor.
Update EventLogAnalyzer to not depend on builtin audio decoders.

Bug: webrtc:8396, webrtc:10080
Change-Id: Ie02ed9cda6d4f11bfdf2e65eb6482283b7520738
Reviewed-on: https://webrtc-review.googlesource.com/c/114301
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26026}
2018-12-17 11:15:50 +00:00
2db46b0fb7 Added new feature to print a text log to neteq_rtpplay
This will print out the major events during a NetEq simulation.

Bug: b/116685514
Change-Id: Iab172e9a9115695b42c67628d5523c727359bb89
Reviewed-on: https://webrtc-review.googlesource.com/c/114320
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26019}
2018-12-14 16:38:45 +00:00
3e94557b04 Adding fuzzing configuration files for Rtp Replay Fuzzing.
Configuring video decoding and rtp depacketization through json was introduced
in a prior change. This change introduces some basic configurations that will
be used in the initial round of fuzzers that are being added.

TBR=henrik.lundin@webrtc.org

Bug: webrtc:9599
Change-Id: I58aba6a6f24f8374126547deeef0ff4d1708327b
Reviewed-on: https://webrtc-review.googlesource.com/c/113834
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26005}
2018-12-13 19:58:39 +00:00
f6b10fbe4a Basic fuzzing of rtc::s_url_decode.
rtc::s_url_decode internally calls transform on rtc::url_decode which operates
on raw char buffers. This is used in some core parts of ice server parsing so
it makes sense to add at least a basic fuzzer here. Corpus generation will be
tailored in a future CL.

Bug: webrtc:10117
Change-Id: If1685601c746c4a9f88c2a8d396eeb3f1b1688d4
Reviewed-on: https://webrtc-review.googlesource.com/c/113835
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25980}
2018-12-12 01:21:25 +00:00
4348ce240a Calculate min and max receive timestamps for packets in a video frame
Bug: webrtc:10106
Change-Id: I1d3469abb1e7bb7c91a5912d7b781505526abaca
Reviewed-on: https://webrtc-review.googlesource.com/c/113507
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25935}
2018-12-07 16:22:34 +00:00
6c95e2d56a Fuzz unfuzzed AEC3 killswitch field trials
Bug: webrtc:9413
Change-Id: Iccf861453c1c49c306ad18542074a792592491a9
Reviewed-on: https://webrtc-review.googlesource.com/c/113501
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25928}
2018-12-07 09:38:49 +00:00
dc107965bd Fix AGC2 fuzzer coverage.
Bug: webrtc:10084
Change-Id: Icc51994fe5ab16188c41452e887cbe7a6b8b9aff
Reviewed-on: https://webrtc-review.googlesource.com/c/112941
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Reviewed-by: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25906}
2018-12-05 15:55:42 +00:00
648a7cefe1 Delete method EncodedFrame::GetBitstream, part 1
Only caller was the RtpFrameObject constructor, so it's
not needed in the interface.

To be able to delete downstream overrides, add a temporary
default implementation. Method will be completely deleted in part 2.

Bug: webrtc:9378
Change-Id: I9083b6284313b6ebce854c6f2cec4617953331d9
Reviewed-on: https://webrtc-review.googlesource.com/c/112128
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25822}
2018-11-28 14:52:32 +00:00
09d6588d93 Change HdrMetadataExtension to ColorSpaceExtension
Bug: webrtc:8651
Change-Id: Ica6f8c6bd13bb07f89700b9c0a359b9a58feefbb
Reviewed-on: https://webrtc-review.googlesource.com/c/111758
Commit-Queue: Johannes Kron <kron@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25800}
2018-11-27 14:05:31 +00:00
e3abb8134f Decouple //rtc_base:rtc_base_tests_utils from gunit.
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}
2018-11-23 12:52:46 +00:00
8b5d9d8650 Remove the audio/video split for the RTCP report intervals.
This is a follow up of a comment in
https://webrtc-review.googlesource.com/c/src/+/110105

It was not very useful to split the audio and video report interval since the RTCP module can only either be audio or video.

The recent it was written that way in https://webrtc-review.googlesource.com/c/src/+/43201/ was because that was a straightforward transition from two global constants to two variable.

Bug: webrtc:8789
Change-Id: I2293de14ba5f363351f379a02022ed5dc7b8d458
Reviewed-on: https://webrtc-review.googlesource.com/c/110824
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Jiawei Ou <ouj@fb.com>
Cr-Commit-Position: refs/heads/master@{#25741}
2018-11-22 01:39:41 +00:00