1778 Commits

Author SHA1 Message Date
Sami Kalliomäki
9882495eca Use generic video header frame ID as picture ID.
Bug: webrtc:9582
Change-Id: I7b68a66205f704cba3afe1f461cce2c993016056
Reviewed-on: https://webrtc-review.googlesource.com/96501
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24479}
2018-08-29 09:23:14 +00:00
Kári Tristan Helgason
f16776280f Add config option to run VideoCodecTest in real time.
It's reasonable to allow clients implementing their own VideoCodecTests
to decide wether they should run in real-time.

Removes the IsAsyncCodec helper, as the assumptions it made are outdated,
and it is no longer useful.

Bug: None
Change-Id: If766935d4947555af54f499a30cfe553bde4c1ab
Reviewed-on: https://webrtc-review.googlesource.com/95722
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24478}
2018-08-29 09:19:25 +00:00
Kári Tristan Helgason
55e7785686 Remove kVideoCodecUnknown completely.
Followup to cl https://webrtc-review.googlesource.com/92086

Bug: webrtc:8136
Change-Id: I077d18ac6def475d05424ff0c5e545c939cd8e61
Reviewed-on: https://webrtc-review.googlesource.com/95642
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24475}
2018-08-29 08:48:40 +00:00
Danil Chapovalov
f7f8a1f176 Cleanup RtpPacketizer interface
merge construction and call to SetPayloadData
Add NumPackets instead of SetPayloadData
Remove virtual ToString() as unused
move CHECK(rtp_video_header) from RtpPacketizer::Create to RtpSenderVideo::SendVideo

Bug: webrtc:9680
Change-Id: I074644e048c797eb836f79979df363fe1ea0075e
Reviewed-on: https://webrtc-review.googlesource.com/96543
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24474}
2018-08-29 08:44:08 +00:00
Jesús de Vicente Peña
a687812c70 AEC3: option for enabling/disabling the onset detection for the ERLE in the configuration file.
During this work a parameter is added to the configuration file for the AEC3 that allows to enable or disable the use of a different ERLE estimation for the render onsets.

Bug: webrtc:9677
Change-Id: I467f2cd20683fee06b69c0ba51a90816c9e14f29
Reviewed-on: https://webrtc-review.googlesource.com/96082
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24470}
2018-08-28 20:45:37 +00:00
Niels Möller
d941c09bc0 Delete unimplemented methods from the NetEq interface.
Bug: None
Change-Id: I51949a096c445813acc6649676e32c575732ef40
Reviewed-on: https://webrtc-review.googlesource.com/95643
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24469}
2018-08-28 15:48:26 +00:00
Jesús de Vicente Peña
5b7a484ff1 AEC3: Improving and optimizing the reverberation decay estimator.
- Changes in the early reverberation estimation.
 - Code optimization by avoiding squaring the whole impulse response.

Bug: webrtc:9651
Change-Id: Iefd4f5ad52a2584d21b20934db1fae5cb1bc81ed
Reviewed-on: https://webrtc-review.googlesource.com/95483
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24464}
2018-08-28 09:07:46 +00:00
henrika
255750bfb0 Adds support for real audio devices in video_quality_test.
The old test supported audio but only in combination with a fake ADM.
The new version allows the user to run real video and audio.

Now possible to do:

./out/Debug/video_loopback.exe --audio --use_real_adm

To run the test in loopback using real default audio devices.

By default:

./out/Debug/video_loopback.exe --audio

runs with fake audio devices as before.

Bug: webrtc:9265
Change-Id: Id89924ec0276f929487c71fc6321dcd9cb92693d
Reviewed-on: https://webrtc-review.googlesource.com/96161
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Henrik Andreassson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24463}
2018-08-28 09:00:45 +00:00
Gustaf Ullberg
5cd81cbff7 AEC3: Disabling explicit handling of microphone gain changes
Disables the faster filter adaptation in the event of
microphone gain changes as it sometimes impacted transparency
negatively.

Bug: webrtc:9526,chromium:863826
Change-Id: I48fb6dd45440518aaf94b6469d6bb891247ea4ab
Reviewed-on: https://webrtc-review.googlesource.com/95143
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24461}
2018-08-28 07:26:40 +00:00
Gustaf Ullberg
9ed9792def AEC3: Removing some old kill switches
Removing the some kill switches from the AEC3 codebase. CL is tested for
bit exactness.

Bug: webrtc:8671
Change-Id: I6ecdb1b5ccb05dca79bf0a0cd471f53d79d71d7e
Reviewed-on: https://webrtc-review.googlesource.com/96181
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24460}
2018-08-28 06:59:42 +00:00
“Michael
f9fc171568 Add rtt_mult_experiment to evaluate video robustness vs. latency
Bug: webrtc:9670
Change-Id: Idb4ca130bfa652b2d0bddb5bee9ed8e34c97150a
Reviewed-on: https://webrtc-review.googlesource.com/96060
Commit-Queue: Michael Horowitz <mhoro@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24457}
2018-08-27 15:51:52 +00:00
Sergey Silkin
8227659075 Prevent duplicates in VP9 RTP p_diff list.
VP9 encoder wrapper duplicated p_diff values in VP9 RTP payload
descriptor for some frames. This confused ref frame finder which
invalidated such frames on receiver.

Bug: webrtc:9657
Change-Id: I5ddfed30d2908c5fbb8bce9d3dac0a519830e978
Reviewed-on: https://webrtc-review.googlesource.com/95701
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24456}
2018-08-27 14:38:59 +00:00
Jesús de Vicente Peña
657f2e6c3e AEC3: audioproc_f: adding the read of the parameter fixed_capture_delay_samples
Bug: webrtc:8671
Change-Id: Ibbf1a725c1ec3a26879ab4feb2a655ed1460b359
Reviewed-on: https://webrtc-review.googlesource.com/96220
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24452}
2018-08-27 14:15:22 +00:00
Alessio Bazzica
82ec0faf72 Limiter reset when fixed gain controller gain set.
When FixedGainController::SetGain() is called first on a large value (e.g., 40 dB)
and afterwards on a smaller one (e.g., 0 dB), the limiter used by FixedGainController
takes time (about 10-20 seconds) to converge. During that period, the audio is not
audible and the volume slowly increases.

Even if switching from 40 dB to 0 dB is unlikely, this behavior can be corrected by
resetting the limiter every time that FixedGainController::SetGain() is called.
This eliminates the undesired effect described above even when the transient is short.

Bug: webrtc:7494
Change-Id: I419b8986d2181448b4671cdbbd1c256dfb460216
Reviewed-on: https://webrtc-review.googlesource.com/94902
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24451}
2018-08-27 14:06:32 +00:00
Ilya Nikolaevskiy
b0588e6368 Reland "Move FakeCodec to separate target and behave like real encoder."
Reland after fixes for ramp-up-tests

original reviewed on: https://webrtc-review.googlesource.com/95182

TBR=mbonadei@webrtc.org,ilnik@webrtc.org,sprang@webrtc.org,srte@webrtc.org,perkj@webrtc.org,titovartem@webrtc.org

Bug: none
Change-Id: I4f9af0c98a0341dd4fadd5184bb85d7511efbdc0
Reviewed-on: https://webrtc-review.googlesource.com/96120
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24450}
2018-08-27 13:09:37 +00:00
philipel
bf2b620cc8 Convert VP8 descriptor to generic descriptor.
Also adds a running picture id for the old generic format when
kVideoCodecGeneric is used (behind "WebRTC-GenericPictureId" field trial).

Bug: webrtc:9361
Change-Id: I6f232a2663bb60257c97ed3473eb07044d325b90
Reviewed-on: https://webrtc-review.googlesource.com/94842
Commit-Queue: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24449}
2018-08-27 13:03:20 +00:00
Per Åhgren
fde4aa9909 AEC3: Adaptive handling of echo path with strong high-frequency gain
This CL adds adaptive handling of platforms where the echo path has
a strong gain above 10 kHz. A configurable offset is adaptively applied
depending on the amount of echo and mode of the echo suppressor.

Bug: webrtc:9663
Change-Id: I27dde6dc23b04a76a3be8c49d7fc9e226b9137e6
Reviewed-on: https://webrtc-review.googlesource.com/95947
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24448}
2018-08-27 12:49:28 +00:00
Kári Tristan Helgason
01a89904c0 Remove deprecated type alias for RtpVideoCodecTypes.
First phase of this removal landed with cl https://webrtc-review.googlesource.com/79561

Bug: webrtc:8995
Change-Id: I9dc152e2f1bac17e2959af7e18106760ca5435c8
Reviewed-on: https://webrtc-review.googlesource.com/95720
Commit-Queue: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24447}
2018-08-27 12:09:57 +00:00
Gustaf Ullberg
638d4d375f AEC3: No ERLE uncertainty with diverged filter
Disable the use of ERLE uncertainty with a diverged filter as it has
been shown to make transparency worse.

Bug: webrtc:9668
Change-Id: I5e23665def187c0d1cf47a029c4ebc950e79bb44
Reviewed-on: https://webrtc-review.googlesource.com/96140
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24446}
2018-08-27 12:06:43 +00:00
Niels Möller
b615d1af90 Add lock annotations in StreamStatisticianImpl
Also consolidate lock operations to public methods only, moving one
CritScope out of UpdateCounters (private) up to IncomingPacket
(public).

Bug: webrtc:7135
Change-Id: I458857d3cfa49961fa34196ffe02cdefd83cec10
Reviewed-on: https://webrtc-review.googlesource.com/96122
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24443}
2018-08-27 11:06:40 +00:00
Niels Möller
764c14c87d Delete unused AudioCodingModule methods.
Methods deleted: IsCodecValid (static), QueryEncoder, SendFrequency.

Bug: None
Change-Id: Id63ea7cdc364583e896d3301d04fa9caae1e4d94
Reviewed-on: https://webrtc-review.googlesource.com/95486
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24440}
2018-08-27 10:00:59 +00:00
Niels Möller
18f1adc0da Delete AudioCodingModule::LeastRequiredDelayMs and related NetEq code.
Bug: None
Change-Id: I2f68502d19415899b3694f7bf5da523da831b223
Reviewed-on: https://webrtc-review.googlesource.com/95640
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24439}
2018-08-27 09:58:19 +00:00
Ilya Nikolaevskiy
8d92e8d323 Revert "Reland "Move FakeCodec to separate target and behave like real encoder.""
This reverts commit f2a8287cc5bbe982cc008d0550df83533623b780,
original reviewed on: https://webrtc-review.googlesource.com/95182

Reason for revert: Breaks ramp-up tests

TBR=mbonadei@webrtc.org,ilnik@webrtc.org,sprang@webrtc.org,srte@webrtc.org,perkj@webrtc.org,titovartem@webrtc.org

Bug: none
Change-Id: I11ddf8619c33cf93825088fd293bcdf11e8cedab
Reviewed-on: https://webrtc-review.googlesource.com/96083
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24438}
2018-08-27 09:19:33 +00:00
Sergey Silkin
1946a3f0fe Add frame rate parameter to SpatialLayer struct.
This will allow us to configure VP9 encoder to produce spatial layers
with different frame rates.

Bug: webrtc:9650
Change-Id: I3a9c58072003b8a8da681d5291d8f7ede7f52fa4
Reviewed-on: https://webrtc-review.googlesource.com/95427
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24435}
2018-08-26 19:19:36 +00:00
Per Åhgren
524e878121 AEC3: Add state-specific suppressor behaviors
This CL allows selecting an echo suppressor behavior which is specific
for whether the nearend is dominant, or the echo is dominant.

The changes in this CL are bitexact.

Bug: webrtc:9660
Change-Id: Ie32e65efe47e692de6d6a22a7ad3b469d745fd6b
Reviewed-on: https://webrtc-review.googlesource.com/95725
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24434}
2018-08-24 21:43:36 +00:00
Alex Loiko
e583174d1e Optionally disable digital adaptive AGC2.
The AGC2 is enabled by flipping
AudioProcessing::Config::GainController2::enabled. The flag enables
both AdaptiveAgc and FixedGainController. Before this CL, there was no
way(*) to only enable the FixedGainController. After this CL, it's
also possible to flip the setting
|AudioProcessing::Config::GainController2::adaptive_digital_mode|. The
default is |true|, which is the previous behavior.

* Except for instantiating and setting it up outside of the APM like
  it's done in the AudioMixer.

Bug: webrtc:7494
Change-Id: I506e93b6687221ac467f083fa8db3d45c98c1b83
Reviewed-on: https://webrtc-review.googlesource.com/95426
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24432}
2018-08-24 15:54:43 +00:00
Gustaf Ullberg
41dd22b15d AEC3: Removing more dead code from the suppressor
This CL removes the UpdateGainIncrease code that is not used anymore.
The CL has been tested for bit exactness.

Bug: webrtc:8671
Change-Id: I4fcf26c3b4b5bba760ee139416ddefac86a36c2e
Reviewed-on: https://webrtc-review.googlesource.com/95940
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24425}
2018-08-24 10:25:00 +00:00
Ilya Nikolaevskiy
523b4c4330 Add unlimited retransmission experiment for screenshare
Bug: webrtc:9659
Change-Id: Idcdc647c112ed2c7c027a7a0056b145ce8f45788
Reviewed-on: https://webrtc-review.googlesource.com/95724
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24422}
2018-08-24 08:48:30 +00:00
Åsa Persson
a765c8208a Change some pointers to std::unique_ptr in rtp_rtcp tests.
Bug: none
Change-Id: Ia4e69e44bbda7b5b633b8be1779d105649f44930
Reviewed-on: https://webrtc-review.googlesource.com/94844
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24419}
2018-08-24 07:26:04 +00:00
Gustaf Ullberg
ecb2d5670d AEC3: Removing old suppressor logic
This CL removes some of the unused code in the suppressor. The CL has
been tested for bit exactness.

Bug: webrtc:8671
Change-Id: I960f9445dfd109cf1d5790debb8758872b5b8d0d
Reviewed-on: https://webrtc-review.googlesource.com/95682
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24417}
2018-08-24 06:34:42 +00:00
Per Åhgren
5a72a5ef2b Adding quiet mode for audioproc_f
This CL adds a quiet mode for audioproc_f and hooks up the verbose
output of the AEC3 settings read from the JSON input file to that.

Bug: webrtc:8671
Change-Id: I93bbd1efc6502649da7b2b3e9f7557e9c184b0ed
Reviewed-on: https://webrtc-review.googlesource.com/95700
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24416}
2018-08-24 05:52:43 +00:00
Sergey Silkin
738b7e9c24 Write scalability structure in flexible mode.
Always write scalability structure no matter whether flexible mode
is enabled or not.

Bug: webrtc:9658
Change-Id: I6c3d5c8e46046dfe89e8ec38536d71b195e80593
Reviewed-on: https://webrtc-review.googlesource.com/95723
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24406}
2018-08-23 15:12:09 +00:00
Gustaf Ullberg
370c050ecd Correct audioproc_f to support the new echo canceller activation III
The introduction of the new AEC proxies caused audioproc_f to fail.
This CL corrects audioproc_f so that the AEC2 and AECM echo cancellers
are properly activated using the new AEC proxies.

Bug: webrtc:9535
Change-Id: I48b9deaad873aee597f56ebd33814420024e0d58
Reviewed-on: https://webrtc-review.googlesource.com/95645
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24405}
2018-08-23 13:48:33 +00:00
Ying Wang
1f262cc5da Fix flaky test TestFlexfecRtpStatePreservation.
Videosendstream can be created before capturer starts, so initially the frame resolution may be zero. Add a check to prevent test failure and undesired behavior.

Bug: webrtc:7737
Change-Id: I8f4402e866f45ea1eb112437f866170691a111f6
Reviewed-on: https://webrtc-review.googlesource.com/95102
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24404}
2018-08-23 13:43:50 +00:00
Gustaf Ullberg
a73c3b0e07 AEC3: Removing the coherence computation
This CL removes the unused coherence computation from AEC3. This CL
only removes unused code, the output of AEC3 does not change.

Bug: webrtc:8671
Change-Id: Ie127c5ec64e29414f1e1570511d57a4d09fc9145
Reviewed-on: https://webrtc-review.googlesource.com/95650
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24403}
2018-08-23 13:05:54 +00:00
Niels Möller
bc25899363 Delete unneeded includes of rtp_payload_registry.h
Bug: webrtc:7135
Change-Id: I59f2891bb744c645b00e212827901dfeb638e265
Reviewed-on: https://webrtc-review.googlesource.com/94507
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24402}
2018-08-23 11:21:07 +00:00
Per Åhgren
398689f581 AEC3: Adding the option for applying a fixed delay to the capture signal
This CL adds functionality for applying an optional fixed delay in AEC3
to the capture signal

Bug: webrtc:9647
Change-Id: Id3b3f896bcf203e6611298dc804c3c80da9f1883
Reviewed-on: https://webrtc-review.googlesource.com/95142
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24399}
2018-08-23 10:05:07 +00:00
Gustaf Ullberg
09831c9b0a Correct audioproc_f to support the new echo canceller activation II
The introduction of the new AEC proxies caused audioproc_f to fail.
This CL corrects audioproc_f so that the AEC2 and AECM echo cancellers
are properly activated using the new AEC proxies.

Bug: webrtc:9535
Change-Id: I0e1462fa6e35944f7dbb02580f1db09401c8f7c8
Reviewed-on: https://webrtc-review.googlesource.com/95484
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24394}
2018-08-23 06:03:53 +00:00
Niels Möller
ec93075c00 Delete deprecated methods on AudioCodingModule
Bug: None
Change-Id: I05f1ab6cdd6ac52972835af7ea94aacf5f64d673
Reviewed-on: https://webrtc-review.googlesource.com/95482
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24388}
2018-08-22 13:26:17 +00:00
Niels Möller
8dad9b414a Eliminate NackModule dependency on VCMPacket
Bug: None
Change-Id: I1d4ecac123c888f2315aeb2f717ee756a472036e
Reviewed-on: https://webrtc-review.googlesource.com/95420
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24387}
2018-08-22 12:13:39 +00:00
Sebastian Jansson
206b77f7ad Adds start bitrate handling to task queue congestion controller.
This adds a start bitrate field to TargetRateConstraints since this is
required in VideoSendStreamTests. This also reduces the differences
between the old SendSideCongestionController and the new TaskQueue
based version.

Bug: webrtc:9586
Change-Id: I5d3d1414e9d30b51723c911a0bf2e96b876c04e5
Reviewed-on: https://webrtc-review.googlesource.com/92624
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24384}
2018-08-22 10:09:26 +00:00
Ilya Nikolaevskiy
f2a8287cc5 Reland "Move FakeCodec to separate target and behave like real encoder."
Add FakeVp8Encoder, change FakeEncoder to use BitrateAllocator for simulcast.

Change call_test to use VP8 payload name for simulcast tests.
This is reland after fixes for broken perf tests.

 
Original Reviewed-on: https://webrtc-review.googlesource.com/91861

Bug: none
Change-Id: I6999a499408787be43a74a26a16b7826a0814a7b
Reviewed-on: https://webrtc-review.googlesource.com/95182
Reviewed-by: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24383}
2018-08-22 09:48:32 +00:00
Sebastian Jansson
4932aa185c Avoids posting tasks in congestion controller.
This CL makes calls to send side congestion controller that originates
from the task queue execute directly rather than posting a task. This
ensures that side effects are applied by the time the call returns.

This reduces the risk that the task queue version of the congestion
controller introduces races that does not exist in the process thread
based version.

Bug: webrtc:9586
Change-Id: I82de032dc971c791a0f86d20ccbd47cbb09eba4b
Reviewed-on: https://webrtc-review.googlesource.com/85360
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24382}
2018-08-22 09:47:02 +00:00
Anastasia Koloskova
ea9249ed15 Network & bitrate controllers are added for PCC.
Network controller is an implementation of the
NetworkControllerInterface which is a part of congestion controller API.
Bitrate controller computes rate update each iteration (see
https://www.usenix.org/system/files/conference/nsdi18/nsdi18-dong.pdf).

Bug: webrtc:9434
Change-Id: I48d3d9e1c713985ef9ebe28dc1f1285757588c69
Reviewed-on: https://webrtc-review.googlesource.com/87222
Commit-Queue: Anastasia Koloskova <koloskova@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24376}
2018-08-22 08:08:12 +00:00
Karl Wiberg
801500cf99 Audio encoder tests: Create audio encoders the new way
Specifically, don't expect the ACM to be able to create encoders; we
have to give it an encoder that we make ourselves.

The new way of creating encoders used a 32 kbit/s bitrate
unconditionally for iSAC; I had to change it to 32 kbit/s for 16 kHz
and 56 kbit/s for 32 kHz, which is what the old way of creating
encoders has used since forever.

I also had to change some test expectations on Opus, because the new
way defaults to 32 kbit/s for mono and 64 kbit/s for stereo (which I
believe to be correct), while the old way defaults to 64 kbit/s in
both cases.

Bug: webrtc:8396
Change-Id: I3aab944175a8e27f4c63380e822b27e839bba7f2
Reviewed-on: https://webrtc-review.googlesource.com/94540
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24375}
2018-08-22 07:48:55 +00:00
Qingsi Wang
2370b0831f Revert "Update packetsLost and jitter stats any time a packet is received."
This reverts commit 84916937b70472715efe5682bc273e91c3a72695.

Reason for revert: breaking downstream projects.

Original change's description:
> Update packetsLost and jitter stats any time a packet is received.
>
> Before this CL, the packetsLost and jitter stats (as returned by
> GetStats, at the API level) were only being updated when an RTCP SR or
> RR is generated. According to the stats spec, "local" stats like this
> should be updated any time a packet is received.
>
> This CL also fixes some minor issues with the calculation of packetsLost
> (and fractionLost):
> * Packets weren't being count as lost if lost over a sequence number
>   rollover.
> * Temporary periods of "negative" loss (caused by duplicate or out of
>   order packets) weren't being accumulated into the cumulative loss
>   counter. Example:
>   Period 1: Received packets 1, 2, 4
>     Loss over that period: 1 (expected 4 packets, got 3)
>     Reported cumulative loss: 1
>   Period 2: Received packets 3, 5
>     Loss over that period: -1 (expected 1 packet, got 2)
>     Reported cumulative loss: 1 (should be 0!)
>
> Landing with NOTRY because Android compile bots are broken for an
> unrelated reason.
> NOTRY=True
>
> Bug: webrtc:8804
> Change-Id: I840ba34de8957b1276f6bdaf93718f805629f5c8
> Reviewed-on: https://webrtc-review.googlesource.com/50020
> Commit-Queue: Taylor Brandstetter <deadbeef@webrtc.org>
> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
> Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#23731}

TBR=danilchap@webrtc.org,deadbeef@webrtc.org,ossu@webrtc.org

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

Landing with NOTRY because ios64_sim_ios10_dbg bot is broken.
Passing all other bots.
NOTRY=True

Bug: webrtc:8804
Change-Id: I07bd6b1206d5a8d211792ad392842f9ed6c505e9
Reviewed-on: https://webrtc-review.googlesource.com/95280
Commit-Queue: Qingsi Wang <qingsi@webrtc.org>
Reviewed-by: Qingsi Wang <qingsi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24370}
2018-08-22 00:00:33 +00:00
Anastasia Koloskova
ddbbf4601b Adds utility function for PCC.
Bug: webrtc:9434
Change-Id: I840f39afdff1851d939005f82e64b23927bf455e
Reviewed-on: https://webrtc-review.googlesource.com/87146
Commit-Queue: Anastasia Koloskova <koloskova@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24369}
2018-08-21 21:28:00 +00:00
Anastasia Koloskova
9171e78ccd Adds monitor interval class for PCC.
The PCC congestion control algorithm divides time into consecutive
intervals called monitor intervals. This CL adds a class that is used by
PCC to measure the performance of sending at a certain rate during one
monitor interval.

Bug: webrtc:9434
Change-Id: Ia0447e224067d4ca807bcc6fd8083f9083385b91
Reviewed-on: https://webrtc-review.googlesource.com/87140
Commit-Queue: Anastasia Koloskova <koloskova@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24368}
2018-08-21 19:47:35 +00:00
Ilya Nikolaevskiy
7d13a6e5b9 Revert "Move FakeCodec to separate target and behave like real encoder."
This reverts commit 223eba5f72b5228847eeebaaef1c4305a29e8b3d.

Reason for revert: Breaks perf tests and downstream projects.

Original change's description:
> Move FakeCodec to separate target and behave like real encoder.
> 
> Add FakeVp8Encoder, change FakeEncoder to use BitrateAllocator for simulcast.
> Change call_test to use VP8 payload name for simulcast tests.
> 
> Bug: none
> Change-Id: I5a34c52e66bbd6c05859729ed14ae87ac26b5969
> Reviewed-on: https://webrtc-review.googlesource.com/91861
> Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Reviewed-by: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Per Kjellander <perkj@webrtc.org>
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#24359}

TBR=mbonadei@webrtc.org,ilnik@webrtc.org,sprang@webrtc.org,srte@webrtc.org,perkj@webrtc.org

Change-Id: I602acecb3f340cc8d737ca074bf52496593419c8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: none
Reviewed-on: https://webrtc-review.googlesource.com/95181
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24365}
2018-08-21 15:20:32 +00:00
Anastasia Koloskova
ac50c6a204 Adds Rtt tracker for PCC.
This is a part of series of CLs adding PCC (Performance-oriented
Congestion Control).

Bug: webrtc:9434
Change-Id: Idd36d8abea008623ac64b939d0de7ee6001f7f23
Reviewed-on: https://webrtc-review.googlesource.com/86951
Commit-Queue: Anastasia Koloskova <koloskova@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#24364}
2018-08-21 15:00:47 +00:00