Commit Graph

25675 Commits

Author SHA1 Message Date
1b761ca21a Remove simulcast constraints in SimulcastEncoderAdapter
The lowest and highest resolution layers are also identified instead
of assuming they are the first and last ones.

Bug: webrtc:10069
Change-Id: If9c76d647415c5065b79dc71850709db6bf16f61
Reviewed-on: https://webrtc-review.googlesource.com/c/114429
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26343}
2019-01-21 16:02:59 +00:00
e6a4793b16 AEC3: avoiding a warning in the reverberation decay estimator.
In this CL a warning is avoided in the reverberation decay estimator code. The change is bitexact.

Bug: chromium:921582
Change-Id: I5a91f4b5970a21ba6da7254cf7fad8c2d0bcac4b
Reviewed-on: https://webrtc-review.googlesource.com/c/118441
Commit-Queue: Jesus de Vicente Pena <devicentepena@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26342}
2019-01-21 15:38:21 +00:00
7510e4aac5 Reland "Android: Add helper methods for printing native stack traces"
This is a reland of dc32cc00e80972223767be339f9318b803f4a2ae

Relanding because this CL was not the culprit for the Chrome bot.
(This code shouldn't even be executed in Chrome).

Original change's description:
> Android: Add helper methods for printing native stack traces
>
> This CL adds utility functions to unwind the stack for a given thread on
> Android ARM devices. This works on top of unwind.h and unwinds native
> (C++) stack traces only. Unwinding a thread from another thread is done
> by overriding the signal handler with a custom function and then
> interrupting the specific thread.
>
> Bug: webrtc:10168
> Change-Id: If5adffd3a6bb57bf502168743e09a7eefc292bf3
> Reviewed-on: https://webrtc-review.googlesource.com/c/118141
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Reviewed-by: Tommi <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26328}

TBR=tommi

Bug: webrtc:10168
Change-Id: I4c33c2c147cf10c0172c98a55d32dd35a08517c8
Reviewed-on: https://webrtc-review.googlesource.com/c/118704
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26341}
2019-01-21 15:18:56 +00:00
dfc7d63978 Deprecate FirstSubFrameInFrame() and LastSubFrameInFrame()
In preparation for adding a discardability flag in
RtpGenericFrameDescriptor, deprecate two bits which are always
in practice set to TRUE.

This is conceptual deprecation. RTC_DEPRECATED cannot actually be
applied, because we still want to be able to parse those bits
and make sure they are truly set to TRUE when TRUE is expected.

Bug: webrtc:10214
Change-Id: I7d6cb640fe27f142578883389cc67d326c90f7bb
Reviewed-on: https://webrtc-review.googlesource.com/c/118381
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26340}
2019-01-21 14:20:57 +00:00
05acd2b76f Removes clock from TransportFeedbackAdapter.
Instead timestamps required for processing are provided explicitly.
This makes it easier to ensure correct usage in log processing
and simulation.

Bug: webrtc:10170
Change-Id: I724a6b9b94e83caa22b8e43b63ef4e6b46138e6a
Reviewed-on: https://webrtc-review.googlesource.com/c/118702
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26339}
2019-01-21 12:55:00 +00:00
805a27e134 Reland "Refactor WebRtcVideoEngine tests to not use cricket::VideoCapturer, part 2."
This is a reland of aa8b94c170d6002c9e3f0290e9ab683e4163723c

Original change's description:
> Refactor WebRtcVideoEngine tests to not use cricket::VideoCapturer, part 2.
> 
> Update remaining tests of WebRtcVideoEngine.
> 
> Bug: webrtc:6353
> Change-Id: I63f86a6c3cd45e1c95345746ac4ecc018d2f29c6
> Reviewed-on: https://webrtc-review.googlesource.com/c/117560
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26331}

Bug: webrtc:6353
Change-Id: I052bea3be776140c0f301cc4383337c0aa62f4f5
Reviewed-on: https://webrtc-review.googlesource.com/c/118700
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26338}
2019-01-21 12:48:35 +00:00
5a6ae02e90 Reland "Trim down FileWrapper class to be merely a wrapper owning a FILE*"
This is a reland of 80b95de7651caa0cfeb684ffc200860989f667dc

Original change's description:
> Trim down FileWrapper class to be merely a wrapper owning a FILE*
> 
> Bug: webrtc:6463
> Change-Id: If71e2f3a75dc1863bc805ab71de1e2d33294f805
> Reviewed-on: https://webrtc-review.googlesource.com/c/117881
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Alex Loiko <aleloi@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26311}

Bug: webrtc:6463
Change-Id: I12154ef65744c1b7811974a1d871e05ed3fbbc27
Reviewed-on: https://webrtc-review.googlesource.com/c/118660
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26337}
2019-01-21 12:46:25 +00:00
700615fb1c Revert "Android: Add helper methods for printing native stack traces"
This reverts commit dc32cc00e80972223767be339f9318b803f4a2ae.

Reason for revert: Seems to be breaking Chromium FYI, https://www.google.com/url?q=https://ci.chromium.org/p/chromium/builders/luci.chromium.webrtc.fyi/WebRTC%2520Chromium%2520FYI%2520Android%2520Tests%2520%2528dbg%2529%2520%2528K%2520Nexus5%2529/1807&sa=D&source=hangouts&ust=1548149426180000&usg=AFQjCNGh9aBqv2wNE12D8-6rn9-AJR-cNg

Original change's description:
> Android: Add helper methods for printing native stack traces
> 
> This CL adds utility functions to unwind the stack for a given thread on
> Android ARM devices. This works on top of unwind.h and unwinds native
> (C++) stack traces only. Unwinding a thread from another thread is done
> by overriding the signal handler with a custom function and then
> interrupting the specific thread.
> 
> Bug: webrtc:10168
> Change-Id: If5adffd3a6bb57bf502168743e09a7eefc292bf3
> Reviewed-on: https://webrtc-review.googlesource.com/c/118141
> Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
> Reviewed-by: Tommi <tommi@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26328}

TBR=magjed@webrtc.org,tommi@webrtc.org

Change-Id: I6e01f9226ef60777cb422baeab042bce8944f9ed
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10168
Reviewed-on: https://webrtc-review.googlesource.com/c/118683
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26336}
2019-01-21 11:08:36 +00:00
d7bc09705b Change webrtc-internal iOS pool for try and ci bots
Bug: webrtc:10047
Change-Id: I33d315e10354fe0187c55837f317d2ec5b16ac21
Reviewed-on: https://webrtc-review.googlesource.com/c/118040
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Artem Titarenko <artit@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26335}
2019-01-21 10:53:45 +00:00
36e0f57de3 Replace the usage of RTC_HISTOGRAM_COMMON_BLOCK with
RTC_HISTOGRAM_COMMON_BLOCK_SLOW.

The macro RTC_HISTOGRAM_COMMON_BLOCK uses a static variable for caching,
which causes its usage to behave unlike that of a regular method,
introducing subtble bugs. For example, if this macro is used inside a
member function to log an instance-dependent metric, all instances of
the same class will share the same cached histogram handle and thus
incorrect reports. Before we move away from these macro-based
implementation for metrics, we should avoid using the non-slow macro
unless the caching in logging metrics become performance-critical.

Bug: webrtc:10188, chromium:921023
Change-Id: I8835978498f3e67c5d97580fc916792f38817ff5
Reviewed-on: https://webrtc-review.googlesource.com/c/118022
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Minyue Li <minyue@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Henrik Lundin <henrik.lundin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26334}
2019-01-21 10:44:35 +00:00
4241cf5ed5 Add 2 new virtual methods to IceTransportInternal
This will allow the blink-layer ICE-transport handling code
to use the virtual interface class rather than the concrete
implementation class.

Bug: chromium:864871
Change-Id: I5dfd1f266b3f3eabe42e09ba35afe218d25634b1
Reviewed-on: https://webrtc-review.googlesource.com/c/118360
Commit-Queue: Harald Alvestrand <hta@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26333}
2019-01-21 10:42:35 +00:00
a882fb3ee4 Revert "Refactor WebRtcVideoEngine tests to not use cricket::VideoCapturer, part 2."
This reverts commit aa8b94c170d6002c9e3f0290e9ab683e4163723c.

Reason for revert: Timestamp-related breakage in downstream tests. 
Will try to reland together with fix in cl https://webrtc-review.googlesource.com/c/src/+/118680

Original change's description:
> Refactor WebRtcVideoEngine tests to not use cricket::VideoCapturer, part 2.
> 
> Update remaining tests of WebRtcVideoEngine.
> 
> Bug: webrtc:6353
> Change-Id: I63f86a6c3cd45e1c95345746ac4ecc018d2f29c6
> Reviewed-on: https://webrtc-review.googlesource.com/c/117560
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Reviewed-by: Erik Språng <sprang@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26331}

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

Change-Id: I901fe7416390aa36716b4124c8bbc6b751c26cee
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:6353
Reviewed-on: https://webrtc-review.googlesource.com/c/118681
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26332}
2019-01-21 08:44:47 +00:00
aa8b94c170 Refactor WebRtcVideoEngine tests to not use cricket::VideoCapturer, part 2.
Update remaining tests of WebRtcVideoEngine.

Bug: webrtc:6353
Change-Id: I63f86a6c3cd45e1c95345746ac4ecc018d2f29c6
Reviewed-on: https://webrtc-review.googlesource.com/c/117560
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26331}
2019-01-21 07:34:41 +00:00
dd6633beaa Refactor VideoTrackTest to not depend on cricket::VideoCapturer
Bug: webrtc:6353
Change-Id: Ie0c9d22e1339aa7ff1e02fe26ca796a299410cf1
Reviewed-on: https://webrtc-review.googlesource.com/c/118420
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26330}
2019-01-21 07:33:35 +00:00
fad0893688 Android: Remove static thread references from PeerconnectionFactory
This CL prepares for adding stack trace capability to the native part of
the Android PeerConnectionFactory code. The main blocker this CL removes
is the static printStackTrace() function. We need this function to be
non-static since the C++ counterpart of PCF is non-static. This Cl also
performs various other cleanups in surrounding code.

This CL:
 * Removes static thread references from PeerconnectionFactory and turns
   them into non-static member variables.
 * Adds a non-static alternative to
   PeerconnectionFactory.printStackTraces().
 * Removes the rtc::Thread::Invoke() calls, and turns them into
   asynchronous posts.
 * Consolidates the two different Java PCF ctors into one, so that there
   is one shared path used by both native API and Java API.

Bug: webrtc:10168
Change-Id: I05dbf5b17069d4a115d9adafc25faa121f23b945
Reviewed-on: https://webrtc-review.googlesource.com/c/115961
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26329}
2019-01-20 12:14:05 +00:00
dc32cc00e8 Android: Add helper methods for printing native stack traces
This CL adds utility functions to unwind the stack for a given thread on
Android ARM devices. This works on top of unwind.h and unwinds native
(C++) stack traces only. Unwinding a thread from another thread is done
by overriding the signal handler with a custom function and then
interrupting the specific thread.

Bug: webrtc:10168
Change-Id: If5adffd3a6bb57bf502168743e09a7eefc292bf3
Reviewed-on: https://webrtc-review.googlesource.com/c/118141
Commit-Queue: Magnus Jedvert <magjed@webrtc.org>
Reviewed-by: Tommi <tommi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26328}
2019-01-20 12:01:50 +00:00
982639c019 Fix for bandwidth toggling problem in StartUpPhase.
Fix has 2 parts:
1. Fix for the LossBasedControl being at much lower levels than
DelayBased in StartUpPhase.
2. Explicitly fix state machine problem leading to toggling between
the two estimates.

Bug: webrtc:10222
Change-Id: Ieaaaec6c9233da61a86b69d936c4979c79645686
Reviewed-on: https://webrtc-review.googlesource.com/c/118280
Commit-Queue: Christoffer Rodbro <crodbro@webrtc.org>
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26327}
2019-01-18 15:58:35 +00:00
5c2f1f053f Add some missing includes and dependencies.
In particular, time_utils.h is currently pulled in via rtc_event.h
This CL is in preparation of moving parts of the RTC event log to api/.

Bug: webrtc:10206
Change-Id: Idd35aa9404afded4d29b1296344996c45b8c2e91
Reviewed-on: https://webrtc-review.googlesource.com/c/117921
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26326}
2019-01-18 15:30:26 +00:00
914acd7589 Roll chromium_revision 2f804d91f5..1cac36a781 (624000:624101)
Change log: 2f804d91f5..1cac36a781
Full diff: 2f804d91f5..1cac36a781

Changed dependencies
* src/base: db7d4f4c23..66f195cc35
* src/build: f60372d250..13c868f507
* src/ios: 10ffc9a53e..296c1e46f1
* src/testing: b7b578279b..cc93e4d879
* src/third_party: bec3395f41..242cd92ba3
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/a0e5e3328c..8e77731b13
* src/tools: 78ee16c358..888c147a20
DEPS diff: 2f804d91f5..1cac36a781/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I42c7e3d0185f0f6e94fb227c1fcf144404e25066
Reviewed-on: https://webrtc-review.googlesource.com/c/118401
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#26325}
2019-01-18 15:11:26 +00:00
9dac02d939 Adding text log on actual opus bitrate.
Bug: None
Change-Id: I18b117a446fb629257af31c1c12bef52ccd4f467
Reviewed-on: https://webrtc-review.googlesource.com/c/118300
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Ivo Creusen <ivoc@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26324}
2019-01-18 15:03:55 +00:00
215ba609de Refactor PeerConnectionInterfaceTest to not depend on cricket::VideoCapturer
Bug: webrtc:6353
Change-Id: Ib18f7cec8a8a742d76f4a43410fa927e43336a8a
Reviewed-on: https://webrtc-review.googlesource.com/c/118100
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26323}
2019-01-18 13:55:19 +00:00
fdfe1c96a3 Update jitter delay on per-superframe level from FrameBuffer
Current way with updates on each frame caused a bogus jitter estimate
and lots of dropped frames in unfiltered KSVC stream.

Bug: chromium:912122
Change-Id: I4a1af71a242af3f9b5f5a411b194331b2df24f68
Reviewed-on: https://webrtc-review.googlesource.com/c/117566
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Philip Eliasson <philipel@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26322}
2019-01-18 13:36:07 +00:00
3de32e6e8c Add test WebRtcVideoChannelTest.DoesNotAdaptWhenScreeensharing
Bug: None
Change-Id: Ib0c8a2eeb816631aac65236114b0487104a5c698
Reviewed-on: https://webrtc-review.googlesource.com/c/118121
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26321}
2019-01-18 13:28:47 +00:00
3eaf9f169c Refactor PeerConnectionFactoryTest to not use FakeVideoCapturer.
Extend FakeVideoTrackSource to have a VideoBroadcaster.

Bug: webrtc:6353
Change-Id: I3c8e68b4ec9a1910f0450b5cc698056c0f3089d2
Reviewed-on: https://webrtc-review.googlesource.com/c/118080
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26320}
2019-01-18 12:57:11 +00:00
d15687d612 Don't include packetization overhead in protection bitrate.
If we do, the bitrate allocator will assume there can be a lot a FEC
and other things and bumps the max probing bitrate by 2x.
This caused a bunch of perf tests to change in a non-obvious way.

This is a follow-up to
https://webrtc-review.googlesource.com/c/src/+/115410

Bug: webrtc:10155, chromium:922396
Change-Id: I51d3611cb21d98a8fab1bfab2d8f167ed859696d
Reviewed-on: https://webrtc-review.googlesource.com/c/118043
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26319}
2019-01-18 12:52:37 +00:00
466472796c Revert "Trim down FileWrapper class to be merely a wrapper owning a FILE*"
This reverts commit 80b95de7651caa0cfeb684ffc200860989f667dc.

Reason for revert: Speculative revert for downstream breakage. Possibly FileAudioDevice broken?

Original change's description:
> Trim down FileWrapper class to be merely a wrapper owning a FILE*
> 
> Bug: webrtc:6463
> Change-Id: If71e2f3a75dc1863bc805ab71de1e2d33294f805
> Reviewed-on: https://webrtc-review.googlesource.com/c/117881
> Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
> Reviewed-by: Alex Loiko <aleloi@webrtc.org>
> Commit-Queue: Niels Moller <nisse@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26311}

TBR=aleloi@webrtc.org,kwiberg@webrtc.org,nisse@webrtc.org,tommi@webrtc.org

Change-Id: I46d37afbf9acb5f62f04e09d944114c1da96eb36
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:6463
Reviewed-on: https://webrtc-review.googlesource.com/c/118380
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26318}
2019-01-18 12:04:55 +00:00
5a1a6dba5c Update PlatformThread constructor to take name with absl::string_view
PlatfromThread is used by several TaskQueue implementations that plan
to take it's name as string_view and thus wouldn't guarantee it is 0-terminated.

Bug: webrtc:10191
Change-Id: I7dadb917192257f0185f9cb4f0ec207d7156d3c3
Reviewed-on: https://webrtc-review.googlesource.com/c/118140
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26317}
2019-01-18 12:01:02 +00:00
2ec0c650e9 Set inter_pic_predicted video codec flag in vp9 encoder correctly
This flag only needs to be set in kOn interlayer prediction mode, because
in all others, if new layer is enabled - a keyframe is generated.

Also, use external reference control in that case, because libvpx creates
rtp-incompatible references in that case.

Bug: webrtc:10180
Change-Id: I0fad188fa8cd424f831bac219769dbad3a788b1d
Reviewed-on: https://webrtc-review.googlesource.com/c/118041
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26316}
2019-01-18 11:31:43 +00:00
baaf911c80 Introduce global task queue factory.
Bug: webrtc:10191
Change-Id: I7bdc97fd626da955b9194a9a0d8ed4f5aebddf66
Reviewed-on: https://webrtc-review.googlesource.com/c/118120
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26315}
2019-01-18 11:25:15 +00:00
8a3b9bf435 Increase even more timeout for internal iOS perf
Bug: webrtc:10047
Change-Id: I2e2676068ccbbd2d5dbac99d5f3fe3187e2aee2f
Reviewed-on: https://webrtc-review.googlesource.com/c/118320
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Artem Titarenko <artit@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26314}
2019-01-18 11:00:42 +00:00
ecb6897ade Adds repeating task class.
This CL adds a single class to manage the use case of having a task
that repeats itself by a fixed or variable interval. It replaces the
repeating task previously locally defined for rtp transport controller
send as well as the cancelable periodic task. Furthermore, it is
introduced where one off repeating tasks were created before.

It provides the currently used functionality of the cancelable periodic
task, but not some of the unused features, such as allowing cancellation
of tasks before they are started and cancellation of a task after the
owning task queue has been destroyed.

Bug: webrtc:9883
Change-Id: Ifa7edee836c2a64fce16a7d0f682eb09c879eaca
Reviewed-on: https://webrtc-review.googlesource.com/c/116182
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26313}
2019-01-18 10:55:41 +00:00
95edb037a4 Adds WebRtcKeyValueConfig interface
The WebRtcKeyValueConfig interface allows providing custom key value
configurations that changes per instance of GoogCcNetworkController.

Bug: webrtc:10009
Change-Id: I520fff030d1c3c755455ec8f67896fe8a6b4d970
Reviewed-on: https://webrtc-review.googlesource.com/c/116989
Commit-Queue: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26312}
2019-01-18 08:45:08 +00:00
80b95de765 Trim down FileWrapper class to be merely a wrapper owning a FILE*
Bug: webrtc:6463
Change-Id: If71e2f3a75dc1863bc805ab71de1e2d33294f805
Reviewed-on: https://webrtc-review.googlesource.com/c/117881
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Alex Loiko <aleloi@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26311}
2019-01-18 07:25:30 +00:00
85989c4490 Remove unused friend declaration from ParsedRtcEventLog.
Bug: NONE
Change-Id: I987f13807a7aece16e88e9ff1c5b443b0213c488
Reviewed-on: https://webrtc-review.googlesource.com/c/118181
Reviewed-by: Björn Terelius <terelius@webrtc.org>
Commit-Queue: Zach Stein <zstein@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26310}
2019-01-18 06:57:42 +00:00
4b68b241de Roll chromium_revision 16c3dfe1d0..2f804d91f5 (623888:624000)
Change log: 16c3dfe1d0..2f804d91f5
Full diff: 16c3dfe1d0..2f804d91f5

Changed dependencies
* src/base: 11087981f0..db7d4f4c23
* src/build: 664a358327..f60372d250
* src/ios: 569ea03f0a..10ffc9a53e
* src/testing: 93b5ba2dc8..b7b578279b
* src/third_party: b278475096..bec3395f41
* src/third_party/icu: d65301491c..07e7295d96
* src/tools: b1bf678b4f..78ee16c358
DEPS diff: 16c3dfe1d0..2f804d91f5/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: Icdd8779d7a9001af2974f4baf9f082603d0ecfa2
Reviewed-on: https://webrtc-review.googlesource.com/c/118261
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#26309}
2019-01-18 04:26:58 +00:00
607e6fd44e Fixing possible bug when Flex and RTX used together.
When Flex and RTX are both specified, Flex will not be used because
RTX will introduce a new SSRC making the total SSRC count > 1.
Flex can only protect a single stream, so if the total SSRC count
is > 1, it is not used.
The fix is simple, to check the number of "primary SSRCs" before
redundancy streams are added when determining if Flex should be used.

Bug: None
Change-Id: I98df1b807d306bdcce1a76dfb163aa14e60d0052
Reviewed-on: https://webrtc-review.googlesource.com/c/118220
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Amit Hilbuch <amithi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26308}
2019-01-18 00:02:38 +00:00
01120bc1c1 Roll chromium_revision e291b99915..16c3dfe1d0 (623778:623888)
Change log: e291b99915..16c3dfe1d0
Full diff: e291b99915..16c3dfe1d0

Changed dependencies
* src/base: 99b4f188ee..11087981f0
* src/build: fed0626a8d..664a358327
* src/ios: 646c6b87c2..569ea03f0a
* src/third_party: 9e3a2a27e8..b278475096
* src/tools: f9f06f0f06..b1bf678b4f
DEPS diff: e291b99915..16c3dfe1d0/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,
BUG=None

Change-Id: I18d6a647f2a5ece24e1baf6ac30d15502fcd3965
Reviewed-on: https://webrtc-review.googlesource.com/c/118202
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#26307}
2019-01-17 23:50:14 +00:00
1fa51d6905 Revert "Opus multistream."
This reverts commit 83ed89a45f4578ca07efef48e772b9aafb263163.

Reason for revert: breaks downstream project

Original change's description:
> Opus multistream.
> 
> This is a backwards-compatible change. It makes WebRTC use the Opus
> multistream decoder for all Opus packets. Single-stream packets are a
> special case of multistream ones (with stream=1).
> 
> The tricky parts are 'WebRtcOpus_GetMaxPlaybackRate' and
> 'WebRtcOpus_GetSurroundParameters'. GetMaxPlaybackRate is supposed to
> do what opus_encoder_ctl(encoder, OPUS_GET_MAX_BANDWIDTH(&bandwidth))
> did when we had single-stream encoders. Now there may be several
> independent encoders with possibly different BANDWIDTH. The new
> GetMaxPlaybackRate queries all of them, and returns a playback rate if
> all the encoder's rates are equal.
> 
> WebRtcOpus_GetSurroundParameters is a configuration convention. It
> maps the number of channels to a multi-stream encoder/decoder
> configuration. As described in RFC 7845
> https://tools.ietf.org/html/rfc7845#section-5.1.1, a multi-stream
> encoder/decoder needs a number of streams, number of coupled streams
> and a 255-byte mapping array. The function GetSurroundParameters
> computes all of these from the number of channels. [1, 2, 4, 6, 8]
> channels are supported.
> 
> Bug: webrtc:8649
> Change-Id: I271de8e387d738254d6aa53af7fcf8644a53edb5
> Reviewed-on: https://webrtc-review.googlesource.com/c/111750
> Commit-Queue: Alex Loiko <aleloi@webrtc.org>
> Reviewed-by: Minyue Li <minyue@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26293}

TBR=aleloi@webrtc.org,minyue@webrtc.org

Change-Id: I1002e3273b44d3cccacdba84b8c363eefd537c4b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:8649
Reviewed-on: https://webrtc-review.googlesource.com/c/118201
Reviewed-by: Amit Hilbuch <amithi@webrtc.org>
Commit-Queue: Amit Hilbuch <amithi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26306}
2019-01-17 22:38:57 +00:00
08a9b618a6 Introduce VideoFrameWriter.
VideoFrameWriter is designed to accept webrtc::VideoFrame as input and
write it with Y4mFrameWriterImpl to the output file, transforming
webrtc::VideoFrame to the uint8_t* frame_buffer. VideoFrameWriter will
be used to write webrtc::VideoFrames during dumping input and output
video in peer connection level test framework and will be injected
in webrtc::test::FrameGenerator and rtc::VideoSinkInterface<VideoFrame>.

Bug: webrtc:10138
Change-Id: Iadec7d3ad66f226836acbebe070cf88ceb242f62
Reviewed-on: https://webrtc-review.googlesource.com/c/117200
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26305}
2019-01-17 21:41:11 +00:00
f0d9cda950 Revert "AEC3: Lockless transfer of render data to the capture thread"
This reverts commit 74ba99062c48b278675cfe52643719202296fddc.

Reason for revert: Breaks downstream project.

Original change's description:
> AEC3: Lockless transfer of render data to the capture thread
> 
> This CL implements a lockless queue that replaces SwapQueue
> in the RenderWriter. This avoid stalls when the render and
> capture threads are accessing the queue at the same time.
> 
> Bug: webrtc:10205
> Change-Id: Ie7d6fcf9c80fad957e2a90537658fb730ca2ed72
> Reviewed-on: https://webrtc-review.googlesource.com/c/117643
> Reviewed-by: Per Åhgren <peah@webrtc.org>
> Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
> Cr-Commit-Position: refs/heads/master@{#26298}

TBR=gustaf@webrtc.org,peah@webrtc.org

Change-Id: Ie76ee8835da4e44982d181a152c9ffa19ff33e23
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: webrtc:10205
Reviewed-on: https://webrtc-review.googlesource.com/c/118142
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26304}
2019-01-17 20:44:06 +00:00
ea9845f16a Roll chromium_revision 3a9216d2da..e291b99915 (623639:623778)
Change log: 3a9216d2da..e291b99915
Full diff: 3a9216d2da..e291b99915

Changed dependencies
* src/base: 7a599db692..99b4f188ee
* src/build: 5da693fe57..fed0626a8d
* src/ios: d36794522f..646c6b87c2
* src/testing: 735158b947..93b5ba2dc8
* src/third_party: ef8e4d1296..9e3a2a27e8
* src/third_party/android_build_tools/bundletool: iBp9dwYQET2-P96y1HPJikezjXIprC6C4i6vUyviPcUC..GpDcZ4f-UcI4u6Kk7Ud-vtiLMltFr8vW63-NThsB5tEC
* src/third_party/catapult: https://chromium.googlesource.com/catapult.git/+log/a9729f3347..a0e5e3328c
* src/third_party/libvpx/source/libvpx: 858fe955ae..9ecc0e779a
* src/tools: c1667501ec..f9f06f0f06
DEPS diff: 3a9216d2da..e291b99915/DEPS

No update to Clang.

TBR=chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com,marpan@webrtc.org,
BUG=None

Change-Id: I3232b8d7adc26e7c0b5a7f8885b793e2a843160c
Reviewed-on: https://webrtc-review.googlesource.com/c/118161
Reviewed-by: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Commit-Queue: Autoroller <chromium-webrtc-autoroll@webrtc-ci.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#26303}
2019-01-17 19:55:56 +00:00
934f735528 DTLS transport needs to forward network route change.
Bug: webrtc:9719
Change-Id: I6746badd1f8820aa8aa98763ed74c684fa089a7e
Reviewed-on: https://webrtc-review.googlesource.com/c/118180
Reviewed-by: Anton Sukhanov <sukhanov@webrtc.org>
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Peter Slatala <psla@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26302}
2019-01-17 19:25:25 +00:00
24a164bdcf Introduce ExampleVideoQualityAnalyzer.
This analyzer will be used in implementatino of peer connection level
test framework before main analyzer will be implemented.

Bug: webrtc:10138
Change-Id: Ibb7c5cd94b0f07c6fc5a2415f04b0f0ae7ae75e2
Reviewed-on: https://webrtc-review.googlesource.com/c/117221
Commit-Queue: Artem Titov <titovartem@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26301}
2019-01-17 16:50:38 +00:00
dbdd8395f7 Add ability for VideoEncoder to signal frame rate allocation.
This CL add new data to the VideoEncoder::EncoderInfo struct, indicating
how the encoder intends to allocate frames across spatial and temporal
layers.

This metadata will be used in upcoming CLs to control how the encoder's
rate controller performs.

Bug: webrtc:10155
Change-Id: Id56fae04bae5f230d1a985171097d7ca83a3be8a
Reviewed-on: https://webrtc-review.googlesource.com/c/117900
Reviewed-by: Niels Moller <nisse@webrtc.org>
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26300}
2019-01-17 15:40:53 +00:00
f93eda1705 Move some video codec constants to separate file.
kMaxSimulcastStreams, kMaxSpatialLayers and kMaxTemporalStreams don't
really beling on VideoBitrateAllocation.
common_types.h is going away and it feels dubious to requrie include
of the full VideoEncoder api to use them. Therefore moving them into a
seprate file/target.

Also includes some remaining cleanup of includes.

Bug: webrtc:9271
Change-Id: I7ded3d97a9a835ac756159700774445a2b93a697
Reviewed-on: https://webrtc-review.googlesource.com/c/117305
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Commit-Queue: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26299}
2019-01-17 15:29:53 +00:00
74ba99062c AEC3: Lockless transfer of render data to the capture thread
This CL implements a lockless queue that replaces SwapQueue
in the RenderWriter. This avoid stalls when the render and
capture threads are accessing the queue at the same time.

Bug: webrtc:10205
Change-Id: Ie7d6fcf9c80fad957e2a90537658fb730ca2ed72
Reviewed-on: https://webrtc-review.googlesource.com/c/117643
Reviewed-by: Per Åhgren <peah@webrtc.org>
Commit-Queue: Gustaf Ullberg <gustaf@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26298}
2019-01-17 14:41:18 +00:00
fb7a6a7f8d Delete test WebRtcVideoChannelTest.AdaptsOnOveruseAndChangeResolution
It only tests the videoadaptation in the test class FakeVideoCapturer.

Bug: webrtc:6353
Change-Id: I4766eebc5cfa7412fde9fd6e5173f1b2381a5d87
Reviewed-on: https://webrtc-review.googlesource.com/c/118042
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26297}
2019-01-17 14:23:52 +00:00
15589a3be1 Increase timeout for internal iOS perf, like for public android and desktop
Bug: webrtc:10047
Change-Id: Ia3a34e0135aafdfa3cb88244ef83ef06bfbd7aef
Reviewed-on: https://webrtc-review.googlesource.com/c/117963
Reviewed-by: Oleh Prypin <oprypin@webrtc.org>
Commit-Queue: Artem Titarenko <artit@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26296}
2019-01-17 13:46:18 +00:00
348b08ac3e Introduce webrtc::TaskQueue and TaskQueueFactory interfaces
Bug: webrtc:10191
Change-Id: Ia2fff34cb260d904f25f7263051695f1c004a53b
Reviewed-on: https://webrtc-review.googlesource.com/c/117360
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26295}
2019-01-17 13:10:14 +00:00
24871e4cbe Rename EncodedImage::_buffer --> buffer_, and make private
Bug: webrtc:9378
Change-Id: I0a0636077b270a7c73bafafb958132fa648aca70
Reviewed-on: https://webrtc-review.googlesource.com/c/117722
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26294}
2019-01-17 12:38:15 +00:00