Commit Graph

25640 Commits

Author SHA1 Message Date
49ea47b90e Fix fuzzer identified crash in DecodeFramesHistory
Bug: chromium:921933,chromium:921935
Change-Id: I10f2a4783a717d9541bfc9f9bc0c76eaa2e62f30
Reviewed-on: https://webrtc-review.googlesource.com/c/117562
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26258}
2019-01-15 10:26:13 +00:00
ee0a85cee2 Roll //third_party/ffmpeg and disable H264 when MSVC is used.
FFmpeg hasn't been rolled since [1] in order to avoid to break MSVC
trybots (//third_party/ffmpeg dropped MSVC support, in theory it is
possible to bring the support back but some work is needed every time
//third_party/ffmpeg gets updated).

Not rolling //third_party/ffmpeg is not enough to keep the Chromium
Roll working because -Wstring-plus-int becomes more chatty with clang 350768
and it has been suppressed in //third_party/ffmpeg/BUILD.gn [2].

Since WebRTC needs to update clang, //third_party/ffmpeg needs to be
updated. The only way to do it without fixing MSVC errors in
//third_party/ffmpeg is to enforce rtc_use_h264=False when MSVC is used.

PSA: https://groups.google.com/forum/#!topic/discuss-webrtc/cfkPPq5nvNE.

[1] - https://webrtc-review.googlesource.com/78402
[2] - https://chromium-review.googlesource.com/c/chromium/third_party/ffmpeg/+/1376376

Bug: webrtc:9213
Change-Id: I36bd7fb2db21012760e4ff7a791d81350e402ec0
Reviewed-on: https://webrtc-review.googlesource.com/c/116982
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26257}
2019-01-15 10:25:01 +00:00
45ccd8488e Don't set the screenshare flag on FakeVideoCapturerWithTaskQueue
A capturer with this flag was set in
WebRtcVideoChannelTest.PreviousAdaptationDoesNotApplyToScreenshare.
But the flag is used only by the VideoCapturerTrackSource class, which
isn't used in this test.

Bug: webrtc:6353
Change-Id: I58058c882c5a65b5cfa9921e302c422c8ccb20a9
Reviewed-on: https://webrtc-review.googlesource.com/c/117561
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26256}
2019-01-15 10:22:13 +00:00
9db8b88bd4 Added JSON generator for VideoReceiveStream::Config objects.
This change adds a new way for test code to serialize the important information
from a VideoReceiveStream::Config so that it can be stored as configuration data
for WebRTC fuzzers. This code isn't included in the object itself as it is only
going to be used to generate new configurations for the fuzzer each time a new
error_correction or video format is added to WebRTC.

Bug: webrtc:10117
Change-Id: I9b6fb8e0345890ab16f6d319d91e4e316d1f2888
Reviewed-on: https://webrtc-review.googlesource.com/c/116920
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26255}
2019-01-15 00:51:29 +00:00
fa1ca1e781 Bug Fix: iOS H264 Encoder Crash Issue
When using H264 encoder with profile level 3.1, the encoder may crash.
The reason is that we set the expected frame rate using kVTCompressionPropertyKey_ExpectedFrameRate
to the VideoToolBox. However, by iOS implementation, if our setting violates the sample rate limit
[1], the encoder will crash.

This CL fixes the bug by capping the expected frame rate with max allowed frame rate computed from the sample rate limit.

Change-Id: I090d7be8c20713c6a5a4ec80ed243c8fa7b4aa14
Bug: webrtc:10172
Reviewed-on: https://webrtc-review.googlesource.com/c/116056
Commit-Queue: Qiang Chen <qiangchen@chromium.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26254}
2019-01-14 19:23:56 +00:00
c2c733e21b Remove unused methods from cricket::BaseChannel.
Bug: webrtc:10198
Change-Id: If510e6f508e34aaa36c9ccbbdc90dd33ad5fef10
Reviewed-on: https://webrtc-review.googlesource.com/c/116991
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26253}
2019-01-14 19:08:10 +00:00
8efafdf84b Move VideoStreamReceiver JSON configuration parser to test source_set.
This change moves the configuration parser that converts a JSON representation
of the VideoStreamReceiver::Config structure into a native object into the test
directory so that it can be shared with the new corpus_generator utility that is
being built. This rtc_source_set will have an additional utility function added
in a subsequent CL that will allow the generation of a VideoStreamSender::Config
from a given VideoStreamReceiver::Config and visa versa.

Bug: webrtc:10117
Change-Id: I3035826f799f8d1fcdeaa76997391f030c855a5c
Reviewed-on: https://webrtc-review.googlesource.com/c/116880
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Benjamin Wright <benwright@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26252}
2019-01-14 18:40:24 +00:00
4895b45703 Introduce EncodedImageIdInjector.
EncodedImageIdInjector is responsible for injection of frame id into
encoded image before it will be sent to the transport layer. It will
help to track video frame from capturing on 1st peer side to rendering
on 2nd peer side and will make it possible to calculate video quality
stats between these frames.

This CL also introduces two different implementations for injector:
  1. DefaultEncodedImageIdInjector will prepend all encoded images with
     extra data and then will restore them on another side. This injector
     can work even if peers are running on different devices.
  2. SingleProcessEncodedImageIdInjector can work only when all peers
     are running in the same process, but won't use any extra data
     to propagate frame id between peers, so it won't affect any
     transport level metrics and bitrate estimator.

This CL is first part of new video quality analyzer for end-2-end
peer connection level test framework.

Bug: webrtc:10138
Change-Id: I77defc8e8c95cb244a695a9732980a47bd7a2e9b
Reviewed-on: https://webrtc-review.googlesource.com/c/116682
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26251}
2019-01-14 17:59:42 +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
4e5ffbe95d Remove unneeded deps from api:call_api.
Bug: webrtc:10198
Change-Id: I0c86ea3afd68b959774e2f41b8ca7957b9b6c138
Reviewed-on: https://webrtc-review.googlesource.com/c/117160
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26249}
2019-01-14 16:20:09 +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
cd7c21bfad Ensure correct decoding for unfiltered KSVC streams
Set render timestamp for all frames in the superframe.

Bug: chromium:912122
Change-Id: Ic9604620da9fb4176ad5c21b95df47fca8ddea31
Reviewed-on: https://webrtc-review.googlesource.com/c/116985
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26247}
2019-01-14 16:06:38 +00:00
dcfe484f2e Remove definition of macro WEBRTC_THREAD_RR (it's unused).
Bug: None
Change-Id: Id0ba90502ca3acb9e44665fd4cf788679f2c6652
Reviewed-on: https://webrtc-review.googlesource.com/c/117163
Reviewed-by: Tommi <tommi@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26246}
2019-01-14 15:01:38 +00:00
45340ca824 Remove legacy video codec factories.
Removes the deprecated video codec factories and the related flag and
helper classes.

Bug: webrtc:7925
Change-Id: I0a6d1666ece9ad074fefc79b626ba241765e1b98
Reviewed-on: https://webrtc-review.googlesource.com/c/113940
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26245}
2019-01-14 14:56:40 +00:00
959e9b6b57 Publish rtc::QueuedTask in api as webrtc::QueuedTask
Bug: webrtc:10191
Change-Id: I7dcba28615c2f3e44442be410dedde15f5fb1deb
Reviewed-on: https://webrtc-review.googlesource.com/c/113502
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26244}
2019-01-14 14:48:12 +00:00
645df9e3b5 Introduce Y4mFrameReader.
Bug: webrtc:10138
Change-Id: I213a4309a8a4b1a7afd296bf45566c9b3f9a215c
Reviewed-on: https://webrtc-review.googlesource.com/c/117301
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26243}
2019-01-14 14:03:08 +00:00
a8c7326524 RefCounter::DecRef: Remove obsolete TODO and update comment
Bug: webrtc:10198
Change-Id: Icbcb849bdc789d9e3bb7ea6a902475a8263980bf
Reviewed-on: https://webrtc-review.googlesource.com/c/117300
Commit-Queue: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26242}
2019-01-14 14:01:36 +00:00
ebd9770b05 Add extra documentation and minor fixes into video quality analyzer
Bug: webrtc:10138
Change-Id: Ia4ce55ca5ff92237c8d58811df8fd96cd650a5b0
Reviewed-on: https://webrtc-review.googlesource.com/c/116685
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26241}
2019-01-14 13:27:02 +00:00
13717842df Introduce DecodedFramesHistory class and use it in FrameBuffer
This is a space efficient way to store more records about decoded frames,
which is needed for long term references.

Bug: webrtc:9710
Change-Id: I051d59d34a966d48db011142466d9cd15304b7d9
Reviewed-on: https://webrtc-review.googlesource.com/c/116792
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26240}
2019-01-14 13:09:39 +00:00
d0f0f68953 Refactor WebRtcVideoEngine tests to not use cricket::VideoCapturer, part 1.
Replaced with a combination of cricket::FakeFrameSource and
webrtc::test::FrameForwarder. This cl converts the first three
affected tests, the rest will follow.

Bug: webrtc:6353
Change-Id: I556f6b58f4ca81234ffae3dc6e1319f9c60a76ae
Reviewed-on: https://webrtc-review.googlesource.com/c/117260
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26239}
2019-01-14 12:34:51 +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
1a86b78180 Delete StreamInterface methods GetPosition, SetPosition and Rewind
Keep methods on subclasses where they are used: FifoBuffer and
MemoryStream. Also FileStream gets to keep SetPosition, because it's
used by a downstream subclass.

Bug: webrtc:6424
Change-Id: If2a00855aba7c2c9dc0909cda7c8a8ef00e0b9af
Reviewed-on: https://webrtc-review.googlesource.com/c/116487
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26237}
2019-01-14 12:22:22 +00:00
eb0de2284e Remove explicit -fsanitize=memory from BUILD.gn.
There is no need to explicitly do this, because when the GN
argument is_msan is True, the -fsanitize=memory is added by the
toolchain.

Bug: None
Change-Id: Id21dbd56df65636ca038e1abccaada0f44abfbb0
Reviewed-on: https://webrtc-review.googlesource.com/c/116992
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26236}
2019-01-14 11:26:27 +00:00
dc71420e78 Remove deprecated code from logging.
Bug: webrtc:10198
Change-Id: I00c74751c5c71e515c3208a558677215ac547b78
Reviewed-on: https://webrtc-review.googlesource.com/c/116994
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26235}
2019-01-14 11:02:49 +00:00
e893772559 Add new owners to the test/ directory.
Add Artem Titov and Niels Möller as additional owners of test/ directory.

Bug: webrtc:10138
Change-Id: If195f7dfa892c34c3f727523777f1cd99b796fcb
Reviewed-on: https://webrtc-review.googlesource.com/c/117223
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26234}
2019-01-14 10:55:37 +00:00
083fc3f7ed Adds nisse@ and sprang@ to test/OWNERS
Bug: None
Change-Id: If535cb41c128ccbb9e9550a2311645fadd44a2f8
Reviewed-on: https://webrtc-review.googlesource.com/c/117222
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26233}
2019-01-14 10:20:03 +00:00
b2e21b014c Remove rtc_enable_android_opensl.
This GN argument is unused.

Bug: webrtc:10198
Change-Id: I470e3725758fc7d6e80673842fd36fa2f22339a3
Reviewed-on: https://webrtc-review.googlesource.com/c/116993
Reviewed-by: Henrik Andreassson <henrika@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26232}
2019-01-14 10:00:40 +00:00
2bb29f018a Set callback_ member at start of desktop capturer Start()
Some callback wrappers set the callback_ member at the start, but
most set it after calling any owned implementation of Start().

Setting it after the call means that the callback_ is not set up
for any callbacks that happen during the call.

This cl fixes that by setting the callback_ member before any
calls are made in Start().

Bug: chromium:916961
Change-Id: Id26f8cc98377ef217f928095834162f5526c1fdf
Reviewed-on: https://webrtc-review.googlesource.com/c/117040
Reviewed-by: Brave Yao <braveyao@webrtc.org>
Commit-Queue: Gary Kacmarcik <garykac@chromium.org>
Cr-Commit-Position: refs/heads/master@{#26231}
2019-01-11 21:16:22 +00:00
b46235c1cc desktopCapture: skip non-responsive windows in the picker
This is a following up cl to the fix of crbug.com/911110. On Windows,
if an App window is suspended, it will block some queries (which
causes Chromium freezing and is fixed in Chromium.) and won't be captured.
So there is no reason to list it in the window capture picker.

Notes: this cl can't fix the case that the select app window becomes
non-responsive just before capturing starts. Hope that an extreme corner
case that can be safely ingored.

Bug: chromium:911110
Change-Id: I0d14872ac699d559f40b3bff70f048efc67ca5d9
Reviewed-on: https://webrtc-review.googlesource.com/c/115441
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Brave Yao <braveyao@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26230}
2019-01-11 19:21:22 +00:00
977c82020c Rename AttachCurrentThreadIfNeeded to avoid clash with function.
A function with the same name exists here [1]. If the two headers are included
together this causes compilation errors.

[1] - https://cs.chromium.org/chromium/src/third_party/webrtc/sdk/android/src/jni/jvm.h?l=27&rcl=82f96e6a56e6230e98ee70de5178d7de69795c26

Bug: None
Change-Id: Icbc680f24a02ec66ea2b5e2b6584a53042cf45c7
Reviewed-on: https://webrtc-review.googlesource.com/c/116662
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26229}
2019-01-11 19:09:23 +00:00
07dc1e8594 (6) Rename files to snake_case: remove scripts and temp files
Tbr: kwiberg@webrtc.org
Bug: webrtc:10159
Change-Id: I8e3c8b0d42bffd85e8b582adb492523c9fb18eaa
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://webrtc-review.googlesource.com/c/117026
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26228}
2019-01-11 17:17:04 +00:00
aec15aa810 (5) Rename files to snake_case: install forwarding headers
Mechanically generated with this command:

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

Bug: webrtc:10159
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: Ic8e99f71f2da62e5c99863c6d24a8cfe311466cd
Reviewed-on: https://webrtc-review.googlesource.com/c/115682
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26227}
2019-01-11 17:13:36 +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
1c05765831 (3) Rename files to snake_case: move the files
Mechanically generated with this command:

tools_webrtc/do-rename.sh move all-renames.txt

Bug: webrtc:10159
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I8b05b6eab9b9d18b29c2199bbea239e9add1e690
Reviewed-on: https://webrtc-review.googlesource.com/c/115481
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26225}
2019-01-11 17:05:20 +00:00
1bab196551 (2) Rename files to snake_case: files to rename
rename-headers.txt: List of header files to rename.
    Generated first by find_header_renames.sh then
    curated by hand.

all-renames: List of all files to rename. Generated
    first by find_source_test_renames.sh with
    rename-headers.txt then curated by hand.

Bug: webrtc:10159
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: Ib6a56e440f62d9fb71964421c6533a66b3d3f1d2
Reviewed-on: https://webrtc-review.googlesource.com/c/115435
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26224}
2019-01-11 17:03:36 +00:00
5e130f05a0 (1) Rename files to snake_case: scripts
do-renames.sh: Take a list of files to rename and do
    perform the renaming (includes updating BUILD.gn,
    include guards, DEPS, include paths, and installing
    forwarding headers).

find_header_renames.sh: Looks through all header files
    and tries to guess what they should be renamed to,
    if they don't already have underscores.

find_source_test_renames.sh: Takes a list of header file
    renames and applies that information to renaming
    the corresponding source/test files.

Bug: webrtc:10159
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Change-Id: I073608e20bb163f3923ab2209eea72a115a4f593
Reviewed-on: https://webrtc-review.googlesource.com/c/91900
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26223}
2019-01-11 17:01:45 +00:00
aaa99a93e2 Add unittest for congestion window pushback in goog_cc.
Bug: none
Change-Id: Idc4ed71d8e12335eeaccbf1181eff36657f122d0
Reviewed-on: https://webrtc-review.googlesource.com/c/116320
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Commit-Queue: Ying Wang <yinwa@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26222}
2019-01-11 15:42:57 +00:00
1f7a008261 Enable quality-scaling in all video perf tests.
Bug: None
Change-Id: Idc8d4b3372dcabdc4b419f1cce3d02adc3c30128
Reviewed-on: https://webrtc-review.googlesource.com/c/116983
Commit-Queue: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26221}
2019-01-11 15:39:17 +00:00
83953e4d95 Delete method StreamInterface::ReserveSize
Bug: webrtc:6424
Change-Id: I33d62599423b6c88c8e7117c347b7e0133d39943
Reviewed-on: https://webrtc-review.googlesource.com/c/116963
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26220}
2019-01-11 14:08:45 +00:00
4687915495 Enable use of MediaTransportInterface for video streams.
Bug: webrtc:9719
Change-Id: I8c6027b4b15ed641e42fd210b3ea87d121508a69
Reviewed-on: https://webrtc-review.googlesource.com/c/111751
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Peter Slatala <psla@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26219}
2019-01-11 14:06:15 +00:00
7289906437 Delete enum NetEqDecoder.
A trimmed down version is moved to legacy_encoded_audio_frame_unittest.cc
where it's used for test parameterization.

Bug: webrtc:10185
Change-Id: I9abda22f9806b831b6ca4b27d6bcc888285f50f2
Reviewed-on: https://webrtc-review.googlesource.com/c/116961
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26218}
2019-01-11 13:52:25 +00:00
6c4b1b7ade Avoid depending on testonly target in event_log_visualizer_utils.
This is done by creating a custom ReplacementAudioDecoderFactory.

Bug: webrtc:8396, webrtc:10080
Change-Id: Ie1cb614fec855b82d65c6ef86c3593f547254559
Reviewed-on: https://webrtc-review.googlesource.com/c/116795
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26217}
2019-01-11 12:55:50 +00:00
ba50223363 Make voiceengine/audio transport stop using voice_detection() interface
Configuration for AudioProcessing::voice_detection() is moving into
AudioProcessing::Config, to get rid of the pointer-to-submodule
interfaces (such as voice_detection()).

Bug: webrtc:9947
Change-Id: Ia64ae996a43d44423aa0d612a3f1185b52a3e534
Reviewed-on: https://webrtc-review.googlesource.com/c/116067
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Oskar Sundbom <ossu@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26216}
2019-01-11 12:31:29 +00:00
b8b3c9918f Clean up visibility and dependencies of RTC event log build targets.
- Remove visibility of encoder target.
- Remove unnecessary dependency on task_queue.
- Remove CreateRtcEventLogFactory() declaration from the rtc_event_log_api target
  since the function is not defined in that target.

Bug: None
Change-Id: Id9edee86f358d08ea063d62bd96e9653c5b06d55
Reviewed-on: https://webrtc-review.googlesource.com/c/116060
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Kári Helgason <kthelgason@webrtc.org>
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26215}
2019-01-11 11:05:12 +00:00
e4ed6ea63b Introduce stats calculator.
It accumulate sample values inside it and provide API to calc
min/max/avg and percentiles. Current implementation will do it
in O(nlogn) time and planned to be used in the test code after
all time sensitive operations and also assume not too big amount
of data inside.

Bug: webrtc:10138
Change-Id: I262c4b9ca538c19463888b6d6bcdaa7e8c3caa68
Reviewed-on: https://webrtc-review.googlesource.com/c/116284
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26214}
2019-01-11 10:53:53 +00:00
6bb5ab9740 Reland "Refactor and remove media_optimization::MediaOptimization."
This reverts commit 6613f8e98ab3654ade7e8f5352d8d6711b157499.

Reason for revert: This change seemed innocent after all, so undoing speculative revert.

Original change's description:
> Revert "Refactor and remove media_optimization::MediaOptimization."
> 
> This reverts commit 07276e4f89a93b1479d7aeefa53b4fc32daf001b.
> 
> Reason for revert: Speculative revert due to downstream crashes.
> 
> Original change's description:
> > Refactor and remove media_optimization::MediaOptimization.
> > 
> > This CL removes MediaOptmization and folds some of its functionality
> > into VideoStreamEncoder.
> > 
> > The FPS tracking is now handled by a RateStatistics instance. Frame
> > dropping is still handled by FrameDropper. Both of these now live
> > directly in VideoStreamEncoder.
> > There is no intended change in behavior from this CL, but due to a new
> > way of measuring frame rate, some minor perf changes can be expected.
> > 
> > A small change in behavior is that OnBitrateUpdated is now called
> > directly rather than on the next frame. Since both encoding frame and
> > setting rate allocations happen on the encoder worker thread, there's
> > really no reason to cache bitrates and wait until the next frame.
> > An edge case though is that if a new bitrate is set before the first
> > frame, we must remember that bitrate and then apply it after the video
> > bitrate allocator has been first created.
> > 
> > In addition to existing unit tests, manual tests have been used to
> > confirm that frame dropping works as expected with misbehaving encoders.
> > 
> > Bug: webrtc:10164
> > Change-Id: I7ee9c8d3c4f2bcf23c8c420310b05a4d35d94744
> > Reviewed-on: https://webrtc-review.googlesource.com/c/115620
> > Commit-Queue: Erik Språng <sprang@webrtc.org>
> > Reviewed-by: Niels Moller <nisse@webrtc.org>
> > Cr-Commit-Position: refs/heads/master@{#26147}
> 
> TBR=nisse@webrtc.org,sprang@webrtc.org
> 
> # Not skipping CQ checks because original CL landed > 1 day ago.
> 
> Bug: webrtc:10164
> Change-Id: Ie0dae19dd012bc09e793c9661a45823fd760c20c
> Reviewed-on: https://webrtc-review.googlesource.com/c/116780
> Reviewed-by: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26191}

TBR=nisse@webrtc.org,sprang@webrtc.org

Change-Id: Ieda1fad301de002460bb0bf5a75267ea065176a8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10164
Reviewed-on: https://webrtc-review.googlesource.com/c/116960
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26213}
2019-01-11 10:46:33 +00:00
9c843906ca Delete VCMEncodedFrame methods Buffer and MutableBuffer
Replaced by inherited method EncodedImage::data().

Bug: webrtc:9378
Change-Id: I4ec75148f578c72ffb407f9cbf6b4232cc9cfcf6
Reviewed-on: https://webrtc-review.googlesource.com/c/116962
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26212}
2019-01-11 10:10:12 +00:00
87da937789 Delete unused constant kVideoCodecI420
Followup to cl https://webrtc-review.googlesource.com/c/112596.

Bug: webrtc:5791
Change-Id: Ie0375fa9e47dddd9e78d26fd63b8a349bacf5903
Reviewed-on: https://webrtc-review.googlesource.com/c/114983
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26211}
2019-01-11 09:04:56 +00:00
1daa7e8729 Use RTP timestamp when checking for frame duplication.
Value of render timestamp can be the same for consecutive frames (e.g.
when old frames got decoded and need to be rendered immediately). It
should not be used for frame duplication checking.

Bug: b/122636276
Change-Id: Ie00bdd3fa50a2eacd48cba228fa3c54a6b206864
Reviewed-on: https://webrtc-review.googlesource.com/c/116790
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26210}
2019-01-11 08:52:13 +00:00
6670a9d145 AEC3: More efficient comfort noise generation
Comfort noise was generated by picking random angles on the unit circle
for each frequency band and then obtaining points on the unit circle from
{cos(a), -sin(a)}.

In order to reduce complexity, this change introduces a randomly indexed
table of 32 elements over sin(a). cos(a) is obtained by adding an offset
corresponding to pi/2 to the index. The table is pre-scaled by sqrt(2) to
avoid later multiplications.

This change reduces the computational complexity of AEC3 by ~8% with no
audible degradation.

Bug: webrtc:10189
Change-Id: I8cfe2469022fb1fe910ab3f966e55d9d499b7161
Reviewed-on: https://webrtc-review.googlesource.com/c/116787
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26209}
2019-01-11 08:46:05 +00:00