Commit Graph

2042 Commits

Author SHA1 Message Date
2d0c68744c Remove |hw_encoder| and |hw_decoder| from VideoCodecTestFixture::Config.
Only used for output filename nowadays. Previously, it was used for
selecting the codec implementation. That is now done by injecting
the appropriate codec factory.

Bug: webrtc:9317
Change-Id: Ia2bf28f7df165fb65410ecd1f5d646ee6604e1be
Reviewed-on: https://webrtc-review.googlesource.com/c/106023
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25204}
2018-10-16 10:59:23 +00:00
12985414b9 Removing unnecessary dependencies on socket.h.
Since rtc:SentPacket was removed to a separate header. Some usages of
socket.h can be replaced with sent_packet.h which defines a lot less
things, making future maintenance simpler.

Bug: webrtc:9586
Change-Id: If705edda293c389cf2a175117db52a6720a7be86
Reviewed-on: https://webrtc-review.googlesource.com/c/106144
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25201}
2018-10-16 10:24:51 +00:00
e2405c1a82 Remove the HighPassFilter interface
The functionality remains unaffected.
Filter toggling is still available via webrtc::AudioProcessing::Config.
Example:
webrtc::AudioProcessing::Config config = apm.GetConfig();
// Read settings
if (config.high_pass_filter.enabled) { ... }
// Apply setting
config.high_pass_filter.enabled = true;
apm.ApplyConfig();

Bug: webrtc:9535
Change-Id: Ib4c4b04078bbb490ebdab9721b8c7811d73777a8
Reviewed-on: https://webrtc-review.googlesource.com/c/102541
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Fredrik Solenberg <solenberg@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25198}
2018-10-16 09:27:44 +00:00
2560e2e694 Removes Clock instance from RoundRobinPacketQueue.
Bug: webrtc:9870
Change-Id: I8d5b984bbc5e1dff53383be6c92589ad2b786ba8
Reviewed-on: https://webrtc-review.googlesource.com/c/105422
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25194}
2018-10-16 08:23:46 +00:00
a39a00737f Reland "Deprecates legacy transport feedback adapter."
This is a reland of a5778e0d560ffb3e07637547ba8468f4762a2b3e

Original change's description:
> Deprecates legacy transport feedback adapter.
>
> Bug: webrtc:9586
> Change-Id: Ib8c9cec1eb7f3cfa90b18b4b64171fa1b06713cf
> Reviewed-on: https://webrtc-review.googlesource.com/c/105984
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25184}

TBR=terelius@webrtc.org

Bug: webrtc:9586
Change-Id: I4e2b42f71cc13d3ff92c3c11de63bde16c58439b
Reviewed-on: https://webrtc-review.googlesource.com/c/106143
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25190}
2018-10-15 20:43:39 +00:00
f714ee1f8f Revert "Deprecates legacy transport feedback adapter."
This reverts commit a5778e0d560ffb3e07637547ba8468f4762a2b3e.

Reason for revert:
../../rtc_tools/event_log_visualizer/analyzer.cc(1084,3):  error: use of undeclared identifier 'webrtc_cc'
    webrtc_cc::TransportFeedbackAdapter transport_feedback(&clock);

Original change's description:
> Deprecates legacy transport feedback adapter.
> 
> Bug: webrtc:9586
> Change-Id: Ib8c9cec1eb7f3cfa90b18b4b64171fa1b06713cf
> Reviewed-on: https://webrtc-review.googlesource.com/c/105984
> Commit-Queue: Sebastian Jansson <srte@webrtc.org>
> Reviewed-by: Björn Terelius <terelius@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25184}

TBR=terelius@webrtc.org,srte@webrtc.org

Change-Id: I768149f9f4c5db740c2d5938cb3df1d54a8283d4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9586
Reviewed-on: https://webrtc-review.googlesource.com/c/106141
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25185}
2018-10-15 18:24:11 +00:00
a5778e0d56 Deprecates legacy transport feedback adapter.
Bug: webrtc:9586
Change-Id: Ib8c9cec1eb7f3cfa90b18b4b64171fa1b06713cf
Reviewed-on: https://webrtc-review.googlesource.com/c/105984
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25184}
2018-10-15 18:01:08 +00:00
0391446cbb Removing forward declarations in paced_sender.h.
Also making member objects directly owned rather than
using unique_ptr as that's no longer needed.

Bug: webrtc:9870
Change-Id: I4bc85150d3b72b93fee05c85f79f20290cd5124d
Reviewed-on: https://webrtc-review.googlesource.com/c/105480
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25180}
2018-10-15 17:03:42 +00:00
cd0ca2d5d7 Adds unit test for RTT based backoff.
Bug: webrtc:9718
Change-Id: I372f7874a6a001e6cb5e7f6886b28763ae84c464
Reviewed-on: https://webrtc-review.googlesource.com/c/105665
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25179}
2018-10-15 17:01:01 +00:00
74c066c0c5 Merges ControlHandler and PacerController.
This is part of a series of CLs preparing to remove
SendSideCongestionController as a separate class.

Bug: webrtc:9586
Change-Id: I0dabd00793e7b436a679d2ef695d2e557a35ae87
Reviewed-on: https://webrtc-review.googlesource.com/c/105420
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25178}
2018-10-15 16:44:51 +00:00
7341ab60d0 Moves functionality to TransportFeedbackAdapter.
This moves simple logic from SendSideCongestionController to
TransportFeedbackAdapter. The purpose is to make it easier to
reuse TransportFeedbackAdapter without requiring everything
in SendSideCongestionController.

Bug: webrtc:9586
Change-Id: I35acedd15001d75a06c38ece76868afecd6afa18
Reviewed-on: https://webrtc-review.googlesource.com/c/105106
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25177}
2018-10-15 16:09:40 +00:00
ed04912ccd Stop simulations when a LOG_END event is reached.
When a LOG_END event is reached, it makes no sense to continue simulating NetEq.

Bug: webrtc:9667
Change-Id: Ie4f6811cdec0d0632f6e7906059e0e74e9f10438
Reviewed-on: https://webrtc-review.googlesource.com/c/105643
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25176}
2018-10-15 16:06:40 +00:00
d8a52b3ff4 Make ivoc owner of audio_coding.
Bug: None
Change-Id: I9e20031cd292b3459d5bead1a5763af9af18a325
Reviewed-on: https://webrtc-review.googlesource.com/c/106021
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25174}
2018-10-15 15:08:28 +00:00
40a7a35eaa Extract functionality of test_main into separate library.
Extract functionality of test_main into separate library to be able to
reuse it if another main will be required.

Bug: webrtc:5996
Change-Id: I2925b4240bd0e4fb884b43bb16667ca2d6216bbd
Reviewed-on: https://webrtc-review.googlesource.com/c/105921
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25172}
2018-10-15 14:13:06 +00:00
d2d2ecb4a8 Add command-line flag for setting the max number of packets in the buffer.
There is currently no way to set this for simulations in neteq_rtpplay.

Bug: webrtc:9667
Change-Id: I34f34565538bd3c378cdb9d355f5173c3517d59a
Reviewed-on: https://webrtc-review.googlesource.com/c/105982
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25171}
2018-10-15 14:10:24 +00:00
c84cd950b7 Move MockVideoDecoder to api/test.
Move MockVideoDecoder from
modules/video_coding/include/mock/mock_video_codec_interface.h
to
api/test/mock_video_decoder.h

The mock encoder has already moved:
https://webrtc-review.googlesource.com/c/src/+/105620

Keeping the old header until downstream projects have been updated.

Bug: webrtc:9722
Change-Id: I4bc849173a04813064212f17761876695ca3fed4
Reviewed-on: https://webrtc-review.googlesource.com/c/105900
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25170}
2018-10-15 13:45:27 +00:00
11539f0b29 AEC3: Simplify render buffering
This CL simplifies the buffering of render data. Instead of making assumptions
about the worst possible platform, it leverages recent improvements in
the delay estimator to quickly adapt when the conditions change.

Pros:
- No capture delay, delay is found ~200 ms faster.
- Cleaner code that makes the concept of delay more clear.
- Allows for removal of one matched filter because of the jitter headroom
removal.

Cons:
- Delay estimator needs to re-adapt when the call jitter increases.

The code can be deactivated by a kill switch. When the kill switch is
pulled the CL is bit exact.

Bug: webrtc:9726,chromium:895338
Change-Id: Ie2f9c8c5ce5b5a4510b4bdb95db2b970b57cd5d0
Reviewed-on: https://webrtc-review.googlesource.com/c/96920
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25169}
2018-10-15 13:31:50 +00:00
a85995ac66 Set frame duration per spatial layer.
This allows VP9 encoder correctly calculate target frame budgets when
encoding multiple spatial layers with different frame rate.

Bug: webrtc:9768
Change-Id: I21d76cc1670024710371464898d8b3f8572229b1
Reviewed-on: https://webrtc-review.googlesource.com/c/98865
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25164}
2018-10-15 09:49:07 +00:00
83bd37cda4 Add field trials for configuring Opus encoder packet loss rate.
Add options to:
1. Bypass optimization (use reported packet loss).
2. Set a maximum value.
3. Set a coefficient.

Bug: webrtc:9866
Change-Id: I3fef43e5186a4f0f50fda3506e445860518cfbd7
Reviewed-on: https://webrtc-review.googlesource.com/c/105304
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25161}
2018-10-15 08:59:43 +00:00
fcebe0e1ca in RtpPacketizers separate case 'frame fits into single packet'.
Assumption extra needed bytes for single packet needs is sum
of extra bytes for first and last packet
moved up to RTPSenderVideo from individual packetizers.
There it can be fixed.

Bug: webrtc:9868
Change-Id: I24c80ffa5c174afd3fe3e92fa86ef75560bb961e
Reviewed-on: https://webrtc-review.googlesource.com/c/105662
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25160}
2018-10-15 08:46:27 +00:00
3b4b4f5ab6 Mitigate miscalculation of rtp packet size
by allocating slightly larger buffer than requested

Bug: webrtc:9868
Change-Id: I5fc92bba719db567ae135c35cfc76ae39170f81c
Reviewed-on: https://webrtc-review.googlesource.com/c/105622
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25143}
2018-10-12 12:57:15 +00:00
4529fbcfab Move TemporalLayers to api/video_codecs.
Also renaming it Vp8TemporalLayers to show that it is codec specific.

Bug: webrtc:9012
Change-Id: I18187538b8142cdd7538f1a4ed1bada09d040f1f
Reviewed-on: https://webrtc-review.googlesource.com/c/104643
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25137}
2018-10-12 09:15:21 +00:00
df1bf005c5 Headers shouldn't include themselves.
Cycles break tools such as include-what-you-use.

Bug: webrtc:9855
Change-Id: I8afbfda5b43b948c4e94def2a752340a3314f4cd
Reviewed-on: https://webrtc-review.googlesource.com/c/105481
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25131}
2018-10-11 19:24:03 +00:00
8285841e8f Adds handling of untracked data to congestion controller.
Bug: webrtc:9796
Change-Id: I097e8f72a6c8d323c3ea73dbb4ade60873dd4e8d
Reviewed-on: https://webrtc-review.googlesource.com/c/104883
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25129}
2018-10-11 18:47:44 +00:00
20ad2544b4 Adds tracking of allocated but unacknowledged bitrate.
This adds tracking of traffic for streams that are part of bitrate
allocation but without packet feedback to send side congestion
controller.

This is part of a series of CLs that allows GoogCC to track sent bitrate
that is included in bitrate allocation but without transport feedback.

Bug: webrtc:9796
Change-Id: I13e994461c26638d76e8f2f115e6d375e4403116
Reviewed-on: https://webrtc-review.googlesource.com/c/104940
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25126}
2018-10-11 17:45:53 +00:00
74cd1ef9f5 AEC3: Enabling by default the use of the stationarity properties at render at init
In this CL the use of the stationarity properties at init is set to true by default.

Bug: webrtc:9865, chromium:894439
Change-Id: I716ce0d792a50616dc38cc0ba6f2c702549a81cc
Reviewed-on: https://webrtc-review.googlesource.com/c/105303
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25123}
2018-10-11 16:14:22 +00:00
5350d1cafd RtcEventLogSource no longer uses deprecated parsing functions.
Also remove header extension map from NetEqEventLogInput and RtcEventLogSource.

Bug: webrtc:8111
Change-Id: Ic9be7b03e32ab8aa12284596e21e53b6763f483a
Reviewed-on: https://webrtc-review.googlesource.com/c/102622
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25122}
2018-10-11 16:13:17 +00:00
499bc6c5d0 Fix race conditions for ReofferDoesNotCallOnTrack test.
This CL extend critical sections to incorporate:
 * private_submodules_->echo_controller
 * config_

As a side benefit, it prevents weird interleaving where configuration
could have been changed in the middle of GetStatistics methods.

Bug: webrtc:9841
Change-Id: I0de5e756a684c2ff1be4effccf8c0f3d3175e3b9
Reviewed-on: https://webrtc-review.googlesource.com/c/105142
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Commit-Queue: Yves Gerey <yvesg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25121}
2018-10-11 16:12:12 +00:00
53e22113fd AEC3: Kill kill-switches
"Perfection is achieved, not when there is nothing more to add,
but when there is nothing left to take away."

This CL removes the following kill-switches from AEC3
- WebRTC-Aec3DownSamplingFactor8KillSwitch
- WebRTC-Aec3NewSuppressionKillSwitch
- WebRTC-Aec3ShadowFilterJumpstartKillSwitch
- WebRTC-Aec3SlowFilterAdaptationKillSwitch
- WebRTC-Aec3SuppressorNearendAveragingKillSwitch

It also removes code paths and configuration parameters that are no
longer in use. The list of kill-switches in the audio processing
fuzzer test is updated.

The change has been tested for bit-exactness.

Bug: webrtc:8671
Change-Id: Ie0af86a14baf853548bf9c00b2b9b3bbc32c1aaa
Reviewed-on: https://webrtc-review.googlesource.com/c/105324
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@{#25120}
2018-10-11 16:11:07 +00:00
fb226af64d Remove some old logging in goog_cc for congestion window.
Bug: None
Change-Id: I05550e5099cd7b4bc9512d2ce4159222779c02a7
Reviewed-on: https://webrtc-review.googlesource.com/c/105326
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Ying Wang <yinwa@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25118}
2018-10-11 16:08:57 +00:00
a1d9ca47f9 Revert "Add ability to specify if rate controller of video encoder is trusted."
This reverts commit 3e335d1423cab06cca8cdb4f1fadb0b16c9e7d38.

Reason for revert: breaks downstream project

Original change's description:
> Add ability to specify if rate controller of video encoder is trusted.
>
> If rate controller is trusted, we disable the frame dropper in the
> media optimization module.
>
> Bug: webrtc:9722
> Change-Id: I821f21fd74a400ee9d5aa3f6b42d4e569033acbe
> Reviewed-on: https://webrtc-review.googlesource.com/c/105020
> Commit-Queue: Erik Språng <sprang@webrtc.org>
> Reviewed-by: Per Kjellander <perkj@webrtc.org>
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
> Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25107}

TBR=brandtr@webrtc.org,ilnik@webrtc.org,nisse@webrtc.org,sprang@webrtc.org,perkj@webrtc.org

Change-Id: Ifdb0aae684894854a184ec1e7423a7c62e7ba237
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:9722
Reviewed-on: https://webrtc-review.googlesource.com/c/105360
Commit-Queue: Oleh Prypin <oprypin@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25117}
2018-10-11 15:37:40 +00:00
3bdbc84888 Moves pushback controller to GoogCC
Since the pushback controller doesn't strictly adhere to the congestion
window, it better belongs together with the congestion controller logic.

Also ensuring that it does not override the configured min bitrate.

Bug: webrtc:9586
Change-Id: I57dcfc946d470247e66c67adabddaafa3d9d83ad
Reviewed-on: https://webrtc-review.googlesource.com/c/105102
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Ying Wang <yinwa@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25115}
2018-10-11 13:49:07 +00:00
f81170b48f Add error logs to RtpPacketHistory::GetBestFittingPacket when no packet is found.
Make sure nullptr is returned if the packet is not in history.

Bug: webrtc:9863
Change-Id: I9658b1b271071a4bd38f062ed68c60cc04c63123
Reviewed-on: https://webrtc-review.googlesource.com/c/105300
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25114}
2018-10-11 12:33:07 +00:00
f7fcaf0885 Use zero octets for rtp packet padding
RFC3550 Section 4 mention
"Octets designated as padding have the value zero."

Bug: None
Change-Id: Ife4c6226143c79ad7d152bc6099ba1d81f5492dd
Reviewed-on: https://webrtc-review.googlesource.com/c/103983
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25109}
2018-10-11 10:22:36 +00:00
3d255309e9 Reland "Export symbols needed by the Chromium component build (part 1)."
This reverts commit 16fe3f290a524a136f71660a114d0b03ef501f10.

Reason for revert:
After discussing this problem with nisse@ and yvesg@, we decided to modify
how RTC_EXPORT works and avoid to depend on the macro COMPONENT_BUILD.
RTC_EXPORT will instead depend on a macro WEBRTC_COMPONENT_BUILD (which
can be set as a GN argument which defaults to false).
When all the symbols needed by Chromium will be marked with RTC_EXPORT we
will flip the GN arg in Chromium, setting to to `component_build` and from
that moment, Chromium will depend on a WebRTC shared library when
`component_build=true`.

Original change's description:
> Revert "Export symbols needed by the Chromium component build (part 1)."
>
> This reverts commit 99eea42fc1fe0be0ebed13c5eba7e1e42059bc5a.
>
> Reason for revert:
> lld-link: error: undefined symbol: "__declspec(dllimport) bool __cdecl cricket::UnwrapTurnPacket(unsigned char const *, unsigned int, unsigned int *, unsigned int *)" (__imp_?UnwrapTurnPacket@cricket@@YA_NPBEIPAI1@Z)
> >>> referenced by obj/services/network/network_service/socket_manager.obj:("virtual void __thiscall network::P2PSocketManager::DumpPacket(class base::span<unsigned char const, 4294967295>, bool)" (?DumpPacket@P2PSocketManager@network@@EAEXV?$span@$$CBE$0PPPPPPPP@@base@@_N@Z))
> lld-link: error: undefined symbol: "__declspec(dllimport) bool __cdecl cricket::ValidateRtpHeader(unsigned char const *, unsigned int, unsigned int *)" (__imp_?ValidateRtpHeader@cricket@@YA_NPBEIPAI@Z)
> >>> referenced by obj/services/network/network_service/socket_manager.obj:("virtual void __thiscall network::P2PSocketManager::DumpPacket(class base::span<unsigned char const, 4294967295>, bool)" (?DumpPacket@P2PSocketManager@network@@EAEXV?$span@$$CBE$0PPPPPPPP@@base@@_N@Z))
> lld-link: error: undefined symbol: "__declspec(dllimport) bool __cdecl cricket::ApplyPacketOptions(unsigned char *, unsigned int, struct rtc::PacketTimeUpdateParams const &, unsigned __int64)" (__imp_?ApplyPacketOptions@cricket@@YA_NPAEIABUPacketTimeUpdateParams@rtc@@_K@Z)
> >>> referenced by obj/services/network/network_service/socket_tcp.obj:("virtual void __thiscall network::P2PSocketTcp::DoSend(class net::IPEndPoint const &, class std::vector<signed char, class std::allocator<signed char>> const &, struct rtc::PacketOptions const &, struct net::NetworkTrafficAnnotationTag)" (?DoSend@P2PSocketTcp@network@@MAEXABVIPEndPoint@net@@ABV?$vector@CV?$allocator@C@std@@@std@@ABUPacketOptions@rtc@@UNetworkTrafficAnnotationTag@4@@Z))
> >>> referenced by obj/services/network/network_service/socket_tcp.obj:("virtual void __thiscall network::P2PSocketStunTcp::DoSend(class net::IPEndPoint const &, class std::vector<signed char, class std::allocator<signed char>> const &, struct rtc::PacketOptions const &, struct net::NetworkTrafficAnnotationTag)" (?DoSend@P2PSocketStunTcp@network@@MAEXABVIPEndPoint@net@@ABV?$vector@CV?$allocator@C@std@@@std@@ABUPacketOptions@rtc@@UNetworkTrafficAnnotationTag@4@@Z))
> lld-link: error: undefined symbol: "__declspec(dllimport) bool __cdecl cricket::ApplyPacketOptions(unsigned char *, unsigned int, struct rtc::PacketTimeUpdateParams const &, unsigned __int64)" (__imp_?ApplyPacketOptions@cricket@@YA_NPAEIABUPacketTimeUpdateParams@rtc@@_K@Z)
> >>> referenced by obj/services/network/network_service/socket_udp.obj:("bool __thiscall network::P2PSocketUdp::DoSend(struct network::P2PSocketUdp::PendingPacket const &)" (?DoSend@P2PSocketUdp@network@@AAE_NABUPendingPacket@12@@Z))
>
> Original change's description:
> > Reland "Reland "Export symbols needed by the Chromium component build (part 1).""
> >
> > This reverts commit b49520bfc08f5c5832dda1d642125f0bb898f974.
> >
> > Reason for revert: Problem fixed in https://chromium-review.googlesource.com/c/chromium/src/+/1261398.
> >
> > Original change's description:
> > > Revert "Reland "Export symbols needed by the Chromium component build (part 1).""
> > >
> > > This reverts commit 588f4642d1a29f7beaf28265dbd08728191b4c52.
> > >
> > > Reason for revert: Breaks WebRTC Chromium FYI Win Builder (dbg).
> > > lld-link: error: undefined symbol: "__declspec(dllimport) __thiscall webrtc::Config::Config(void)" (__imp_??0Config@webrtc@@QAE@XZ)
> > > [...]
> > >
> > > Original change's description:
> > > > Reland "Export symbols needed by the Chromium component build (part 1)."
> > > >
> > > > This reverts commit 2ea9af227517556136fd629dd2663c0d75d77c7b.
> > > >
> > > > Reason for revert: The problem will be fixed by
> > > > https://chromium-review.googlesource.com/c/chromium/src/+/1261122.
> > > >
> > > > Original change's description:
> > > > > Revert "Export symbols needed by the Chromium component build (part 1)."
> > > > >
> > > > > This reverts commit 9e24dcff167c4eb3555bf0ce6eaba090c10fbe53.
> > > > >
> > > > > Reason for revert: Breaks chromium.webrtc.fyi bots.
> > > > >
> > > > > Original change's description:
> > > > > > Export symbols needed by the Chromium component build (part 1).
> > > > > >
> > > > > > This CL uses RTC_EXPORT (defined in rtc_base/system/rtc_export.h)
> > > > > > to mark WebRTC symbols as visible from a shared library, this doesn't
> > > > > > mean these symbols are part of the public API (please continue to refer
> > > > > > to [1] for info about what is considered public WebRTC API).
> > > > > >
> > > > > > [1] - https://webrtc.googlesource.com/src/+/HEAD/native-api.md
> > > > > >
> > > > > > Bug: webrtc:9419
> > > > > > Change-Id: I802abd32874d42d3aa5ecd3c8022e7cf5e043d99
> > > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/103505
> > > > > > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> > > > > > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > > > > > Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> > > > > > Cr-Commit-Position: refs/heads/master@{#24969}
> > > > >
> > > > > TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org
> > > > >
> > > > > Change-Id: I01f6e18f0d2c0f0309cdaa6c943c3927e1f1f49f
> > > > > No-Presubmit: true
> > > > > No-Tree-Checks: true
> > > > > No-Try: true
> > > > > Bug: webrtc:9419
> > > > > Reviewed-on: https://webrtc-review.googlesource.com/c/103720
> > > > > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > > > > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> > > > > Cr-Commit-Position: refs/heads/master@{#24974}
> > > >
> > > > TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org
> > > >
> > > > Change-Id: I83bbc7f550fc23e823c4d055e0a6f60c828960dd
> > > > No-Presubmit: true
> > > > No-Tree-Checks: true
> > > > No-Try: true
> > > > Bug: webrtc:9419
> > > > Reviewed-on: https://webrtc-review.googlesource.com/c/103740
> > > > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > > > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> > > > Cr-Commit-Position: refs/heads/master@{#24980}
> > >
> > > TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org
> > >
> > > Change-Id: I4b7cfe492f2c8eeda5c8ac52520e0cfc95ade9b0
> > > No-Presubmit: true
> > > No-Tree-Checks: true
> > > No-Try: true
> > > Bug: webrtc:9419
> > > Reviewed-on: https://webrtc-review.googlesource.com/c/103801
> > > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> > > Cr-Commit-Position: refs/heads/master@{#24983}
> >
> > TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org
> >
> > # Not skipping CQ checks because original CL landed > 1 day ago.
> >
> > Bug: webrtc:9419
> > Change-Id: Id986a0a03cdc2818690337784396882af067f7fa
> > Reviewed-on: https://webrtc-review.googlesource.com/c/104602
> > Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#25049}
>
> TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org
>
> Change-Id: I6f58b9c90defccdb160307783fb55271ab424fa1
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug: webrtc:9419
> Reviewed-on: https://webrtc-review.googlesource.com/c/104623
> Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
> Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#25050}

TBR=mbonadei@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org

Change-Id: I4d01ed96ae40a8f9ca42c466be5c87653d75d7c1
Bug: webrtc:9419
Reviewed-on: https://webrtc-review.googlesource.com/c/104641
Reviewed-by: Yves Gerey <yvesg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25108}
2018-10-11 09:50:21 +00:00
3e335d1423 Add ability to specify if rate controller of video encoder is trusted.
If rate controller is trusted, we disable the frame dropper in the
media optimization module.

Bug: webrtc:9722
Change-Id: I821f21fd74a400ee9d5aa3f6b42d4e569033acbe
Reviewed-on: https://webrtc-review.googlesource.com/c/105020
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25107}
2018-10-11 09:07:34 +00:00
88be972260 Delete post_encode_callback
Bug: webrtc:9864
Change-Id: I5e45a73e50e2cf6b25b415a83fe637f8f5b4e70e
Reviewed-on: https://webrtc-review.googlesource.com/c/14840
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25106}
2018-10-11 08:18:08 +00:00
74f6c7ed6c AEC3: Cleanup test code for platforms with clock-drift
This CL removes outdated code for testing of platforms with clock-drift

Bug: webrtc:8671
Change-Id: Ie202c514609d9f3d2357107b0daf895331275797
Reviewed-on: https://webrtc-review.googlesource.com/c/105183
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25105}
2018-10-11 08:13:58 +00:00
d6b079686f AEC3: Ensure that the usage of stationary signal properties is not unset
This CL ensures that the default setting for the usage of stationary signal
properties is not overridden by mistake.

Bug: chromium:894243
Change-Id: I85ab65383ee82b5f3153864da7a0cede7776c146
Reviewed-on: https://webrtc-review.googlesource.com/c/105181
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Commit-Queue: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25104}
2018-10-11 08:10:18 +00:00
23b2a25675 Remove unlimited retransmission for screenshare experiment code
Bug: webrtc:9659
Change-Id: I29d8f0d20b0faee5ec2e8e196581338770b1a74d
Reviewed-on: https://webrtc-review.googlesource.com/c/105001
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25103}
2018-10-11 07:53:47 +00:00
dcc023816e Don't increment timestamp on drop/reencode in LibvpxVp8Encoder.
I don't think this has any impact, just wanted to have a first unit
test to play around with.

Bug: None
Change-Id: I892e2642f0243c5c9ee807cf71abcd96112b25f4
Reviewed-on: https://webrtc-review.googlesource.com/c/105000
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25089}
2018-10-10 13:31:37 +00:00
a4c8514258 Add JSON parsing and corresponding ToString to EchoCanceller3Config
Bug: webrtc:9535
Change-Id: I51eaaac4009a30536444292a32938b21e69386bf
Reviewed-on: https://webrtc-review.googlesource.com/c/102980
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25083}
2018-10-10 09:17:09 +00:00
88b68ace17 Create field trial for setting a minimum value for Opus encoder packet loss rate
Bug: webrtc:9848
Change-Id: I0663ee3af7729a220de7aff08cd74545e1a7409a
Reviewed-on: https://webrtc-review.googlesource.com/c/104800
Reviewed-by: Minyue Li <minyue@webrtc.org>
Commit-Queue: Jakob Ivarsson‎ <jakobi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25081}
2018-10-10 08:52:56 +00:00
1bca65bdc9 Makes RtpSender indicate allocation and feedback status on packets.
Streams that are part of transport feedback are assumed to be part of
allocation. A SetAsPartOfAllocation method is introduced to be used by
media streams that are part of bitrate allocation but not included in
feedback.

This is part of a series of CLs that allows GoogCC to track sent bitrate
that is included in bitrate allocation but without transport feedback.

Bug: webrtc:9796
Change-Id: If7ac1ad3e6f3c28b2ada2aef1607a42689d899b2
Reviewed-on: https://webrtc-review.googlesource.com/c/104881
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25079}
2018-10-10 08:28:34 +00:00
c87b8c194a Moves GoogCC factory to API.
Bug: None
Change-Id: Ib5be0e984eff3a652504106552b0779be2c316ca
Reviewed-on: https://webrtc-review.googlesource.com/c/104941
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Bjorn Mellem <mellem@webrtc.org>
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25076}
2018-10-10 06:11:36 +00:00
0d8c100e81 AEC3: Decrease the suppression during the echo-only case
This CL changes the tuning of the echo suppressor for the case when
there is echo only. The resulting effect is a slight increase of
transparency

Bug: webrtc:9844,chromium:893744
Change-Id: I5e6a867e0d03dc3a468a8f5cfa64103e001baae1
Reviewed-on: https://webrtc-review.googlesource.com/c/104760
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Reviewed-by: Jesus de Vicente Pena <devicentepena@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25075}
2018-10-10 05:18:54 +00:00
13d392d0e8 AEC3: Utilize dominant nearend functionality to increase transparency
This CL utilizes the AEC3 ability to tailor the suppressor during
situations when the nearend dominates over the residual echo. This is
done by increasing the thresholds for transparent echo suppressor
behavior when the nearend is strong compared to the residual echo.

Bug: webrtc:9836, chromium:893744
Change-Id: Ic06569eefc7f2557b401db43b3ac84b299071294
Reviewed-on: https://webrtc-review.googlesource.com/c/104460
Commit-Queue: Per Åhgren <peah@webrtc.org>
Reviewed-by: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25071}
2018-10-09 22:06:00 +00:00
30e2d6ee00 Moves locking outside function in RtpSender.
This CL moves the action of acquiring the lock outside
UpdateTransportSequenceNumber. This prepares for an upcoming CL where
the lock is used outside this call at the call sites and avoids the lock-unlock
overhead that would otherwise occur.

Also removing the const declaration as it modifies the state of
transport_sequence_number_allocator_.

Bug: webrtc:9796
Change-Id: I0bd4a0fd2fdbf6291867eb913690c61269eab8c5
Reviewed-on: https://webrtc-review.googlesource.com/c/102684
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25068}
2018-10-09 18:04:58 +00:00
789f459a06 Adds fields for unacknowledged data to transport feedback.
This CL adds fields to packet feedback structs to indicate the amount of
data that was sent prior to the represented packet without being part
packet feedback, but part of bitrate allocation.

This is part of a series of CLs that allows GoogCC to track sent bitrate
that is included in bitrate allocation but without transport feedback.

Bug: webrtc:9796
Change-Id: I716a5325e2b7022ba6b3f90653542caafb056793
Reviewed-on: https://webrtc-review.googlesource.com/c/104921
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25067}
2018-10-09 18:03:04 +00:00
040f87f934 AEC3: Allow a more stable filter during double-talk
This is a new attempt to reduce the filter divergence
during double-talk without regressing in clock-drift
scenarios.

- The error_floor in decreased to allow for slow adaptation
  when the filter performs well.
- The leakage_diverged is increased to allow for fast adaptation
  when the shadow filter performs better.
- A new parameter, error_ceil, was added to stop the filter from
  adapting too fast.


Bug: webrtc:9746,chromium:883264
Change-Id: Ie2868d2388b48412a192a004ec13f9eff34517b8
Reviewed-on: https://webrtc-review.googlesource.com/c/100460
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#25063}
2018-10-09 14:09:26 +00:00