18634 Commits

Author SHA1 Message Date
emircan
bbcc356084 Reland of Turn off error resilience for VP9 if no spatial or temporal layers are configured and NACK is enabl… (patchset #1 id:1 of https://codereview.webrtc.org/2995173002/ )
Reason for revert:
Speculative revert didn't help, see for the actual reason https://bugs.chromium.org/p/chromium/issues/detail?id=756741.

Original issue's description:
> Revert of Turn off error resilience for VP9 if no spatial or temporal layers are configured and NACK is enabl… (patchset #2 id:20001 of https://codereview.webrtc.org/2925253002/ )
>
> Reason for revert:
> Failing WebRtcVideoQualityBrowserTest.MANUAL_TestVideoQualityVp* tests.
>
> Mac #19383-19392
> https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Tester/builds/42197
> Win8 #19383-19385
> https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win8%20Tester/builds/1496
> Win7 #19383-19385
> https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win7%20Tester/builds/9807
> Win10 #19383-19385
> https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win10%20Tester/builds/8452
>
> Original issue's description:
> > Turn off error resilience for VP9 if no spatial or temporal layers are configured and NACK is enabled.
> >
> > Error resilience is currently always enabled for VP9 which reduces quality.
> >
> > Reland of https://codereview.webrtc.org/2532053002
> >
> > BUG=webrtc:6783
> >
> > Review-Url: https://codereview.webrtc.org/2925253002
> > Cr-Commit-Position: refs/heads/master@{#19385}
> > Committed: 6b463faccb
>
> TBR=brandtr@webrtc.org,asapersson@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6783
>
> Review-Url: https://codereview.webrtc.org/2995173002
> Cr-Commit-Position: refs/heads/master@{#19399}
> Committed: 7b532db9ad

TBR=brandtr@webrtc.org,asapersson@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6783

Review-Url: https://codereview.webrtc.org/3002933002
Cr-Commit-Position: refs/heads/master@{#19402}
2017-08-18 07:28:40 +00:00
oprypin
1ea631f4a7 Fix a delete type mismatch (deleting a sockaddr_in6* as a sockaddr*)
This triggered ASan, saying "object passed to delete has wrong type".
This error is caused by allocating a `struct sockaddr_in6`, casting it
and deleting it as `struct sockaddr*` which has a smaller size.

BUG=None

Review-Url: https://codereview.webrtc.org/2999053002
Cr-Commit-Position: refs/heads/master@{#19401}
2017-08-18 07:15:19 +00:00
Steve Anton
9e0c742f1b Reduce code repetition in RtpDemuxerTest.
Converts RtpDemuxerTest to use a test fixture which creates the
RtpDemuxer under test and wraps sink adding/observer adding
functions to automatically remove them at the end of the test case.

Bug: None
Change-Id: I7e40223f6837caa5443d9850477198c1f7a8d14a
Reviewed-on: https://chromium-review.googlesource.com/608906
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19400}
2017-08-18 02:28:22 +00:00
emircan
7b532db9ad Revert of Turn off error resilience for VP9 if no spatial or temporal layers are configured and NACK is enabl… (patchset #2 id:20001 of https://codereview.webrtc.org/2925253002/ )
Reason for revert:
Failing WebRtcVideoQualityBrowserTest.MANUAL_TestVideoQualityVp* tests.

Mac #19383-19392
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Tester/builds/42197
Win8 #19383-19385
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win8%20Tester/builds/1496
Win7 #19383-19385
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win7%20Tester/builds/9807
Win10 #19383-19385
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win10%20Tester/builds/8452

Original issue's description:
> Turn off error resilience for VP9 if no spatial or temporal layers are configured and NACK is enabled.
>
> Error resilience is currently always enabled for VP9 which reduces quality.
>
> Reland of https://codereview.webrtc.org/2532053002
>
> BUG=webrtc:6783
>
> Review-Url: https://codereview.webrtc.org/2925253002
> Cr-Commit-Position: refs/heads/master@{#19385}
> Committed: 6b463faccb

TBR=brandtr@webrtc.org,asapersson@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:6783

Review-Url: https://codereview.webrtc.org/2995173002
Cr-Commit-Position: refs/heads/master@{#19399}
2017-08-18 01:20:40 +00:00
Jonathan Yu
2238441654 Explicitly specify the onFrameAvailable() thread.
We are already asserting in tryDeliverTextureFrame() that we are on the
SurfaceTextureHelper handler thread, but this behavior isn't guaranteed
by Android.

Also updated docs for OnTextureFrameAvailableListener, since other
classes (e.g. capturers) were also asserting that they were called on
the SurfaceTextureHelper thread.

Bug: webrtc:8087, b/64609528
Change-Id: I47148c452f66f24477e438b06ef124a96965853d
Reviewed-on: https://chromium-review.googlesource.com/610495
Reviewed-by: Sami Kalliomäki <sakal@webrtc.org>
Commit-Queue: Jonathan Yu <yujo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19398}
2017-08-18 00:37:11 +00:00
Steve Anton
786de70a59 Add TLS TURN tests.
This change extends the TurnPort tests to cover connections to
TURN servers over TLS.
As part of this, the TestTurnServer is extended to support
connections from clients over TLS.

Note that this also fixes the remaining bugs in webrtc:7562

Bug: webrtc:7584
Change-Id: If89ceae49d33417625464b5892d20eee4de7c3b5
Reviewed-on: https://chromium-review.googlesource.com/611520
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19397}
2017-08-17 23:03:04 +00:00
Steve Anton
b3329179a7 Rename RsidResolutionObserver to SsrcBindingObserver.
This rename prepares SsrcBindingObserver to be used for observing all
the ways a sink can be bound to SSRCs (e.g., MID, payload types).

Bug: webrtc:4050
Change-Id: I16b68481d01f921c326a33f5f2baf79d8b3f12e2
Reviewed-on: https://chromium-review.googlesource.com/590762
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Elad Alon <eladalon@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19396}
2017-08-17 23:01:59 +00:00
Steve Anton
ed447aedb8 Refactor TurnPort tests.
This commit makes the following changes:
1. Splits TestReconstructedServerUrl into 3 tests that individually
   check the reconstructed URL for UDP IPv4, UDP IPv6, and TCP.
2. Factors out common code between protocols for release allocation and
   reconstructed URL tests.
3. Provides functions for getting the expected RTT of various operations
   based on the protocol used. TurnPort tests use a fake clock in part
   to check tight bounds on the number of network round trips it takes
   to complete operations like getting TURN candidates and trying
   alternate servers. These RTTs are highly dependent on the
   characteristics of the transport-layer protocol used, so these
   details have been moved to dedicated functions with comments
   explaining how the numbers are calculated.

Bug: webrtc:7584
Change-Id: I3b065e25446cb5ecd955f359625a35fb0ad46777
Reviewed-on: https://chromium-review.googlesource.com/611500
Commit-Queue: Steve Anton <steveanton@webrtc.org>
Reviewed-by: Zhi Huang <zhihuang@webrtc.org>
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19395}
2017-08-17 21:58:09 +00:00
zhihuang
1c378ed83b Relanding: Adding support for Unified Plan offer/answer negotiation to the mediasession layer.
This layer takes in a simplified "options" struct and the current local description,
and generates a new offer/answer. Previously the options struct assumed there would
only be one media description per media type (audio/video), but it now supports
N number of audio/video descriptions.

The |add_legacy_stream| options is removed from the mediasession.cc/.h
in this CL.

The next step is to add the ability for PeerConnection/WebRtcSession to create
"options" to represent multiple RtpTransceivers, and apply the Unified Plan
descriptions correctly. Right now, only Plan B descriptions will be
generated in unit tests.

BUG=chromium:465349

Review-Url: https://codereview.webrtc.org/2991693002
Cr-Original-Commit-Position: refs/heads/master@{#19343}
Committed: a77e6bbd30
Review-Url: https://codereview.webrtc.org/2991693002
Cr-Commit-Position: refs/heads/master@{#19394}
2017-08-17 21:10:50 +00:00
Zijie He
825f65e9d2 Share ScreenDrawerLockPosix implementation
This change renames ScreenDrawerLockLinux into ScreenDrawerLockPosix and shares
it with Mac OSX.

Bug: webrtc:7950
Change-Id: Ib141781d2c35bfda0d6f9458fff235adbb643280
Reviewed-on: https://chromium-review.googlesource.com/607688
Commit-Queue: Zijie He <zijiehe@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19393}
2017-08-17 20:47:38 +00:00
tkchin
53959fcc2b Revert of quest keyframes more frequently on stream start/decoding error. (patchset #2 id:170001 of https://codereview.webrtc.org/2996823002/ )
Reason for revert:
Causes iOS H264 calls received in the background to have increased delay before being able to decode stream from sender due to not having a keyframe.

Original issue's description:
> Reland of quest keyframes more frequently on stream start/decoding error. (patchset #1 id:1 of https://codereview.chromium.org/2994043002/ )
>
> Reason for revert:
> Create fix CL.
>
> Original issue's description:
> > Revert of Request keyframes more frequently on stream start/decoding error. (patchset #1 id:1 of https://codereview.webrtc.org/2993793002/ )
> >
> > Reason for revert:
> > Broke downstream test that was waiting for 5 keyframes to be received within 10 seconds. Maybe the issue is that "stats_callback_->OnCompleteFrame(frame->num_references == 0, ..." was changed to "frame->is_keyframe()"?
> >
> > Original issue's description:
> > > Request keyframes more frequently on stream start/decoding error.
> > >
> > > In this CL:
> > >  - Added FrameObject::is_keyframe() convinience function.
> > >  - Moved logic to request keyframes on decoding error from VideoReceived to
> > >    VideoReceiveStream.
> > >  - Added keyframe_required as a parameter to FrameBuffer::NextFrame.
> > >
> > > BUG=webrtc:8074
> > >
> > > Review-Url: https://codereview.webrtc.org/2993793002
> > > Cr-Commit-Position: refs/heads/master@{#19280}
> > > Committed: 26b4804358
> >
> > TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,philipel@webrtc.org
> > # Skipping CQ checks because original CL landed less than 1 days ago.
> > NOPRESUBMIT=true
> > NOTREECHECKS=true
> > NOTRY=true
> > BUG=webrtc:8074
> >
> > Review-Url: https://codereview.webrtc.org/2994043002
> > Cr-Commit-Position: refs/heads/master@{#19295}
> > Committed: 77a983185f
>
> TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,deadbeef@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> BUG=webrtc:8074
>
> Review-Url: https://codereview.webrtc.org/2996823002
> Cr-Commit-Position: refs/heads/master@{#19324}
> Committed: 628ac5964e

TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,deadbeef@webrtc.org,philipel@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:8074

Review-Url: https://codereview.webrtc.org/2995153002
Cr-Commit-Position: refs/heads/master@{#19392}
2017-08-17 18:01:46 +00:00
kjellander
200028fefc DEPS: Remove migration scripts and use hooks_os.
Remove old scripts for handling migrations from checkouts
with 'trunk' as root dir and the old symlink-approach to
handling dependencies.

Recent development in crbug.com/570091 now allows to
use target OS conditional hooks. This change moves all
Android-specific hooks to that section.

BUG=None
NOTRY=True

Review-Url: https://codereview.webrtc.org/2997123002
Cr-Commit-Position: refs/heads/master@{#19391}
2017-08-17 16:54:12 +00:00
asapersson
142fcc96d6 Move kMinPixelsPerFrame constant in VideoStreamEncoder to VideoEncoder::ScalingSettings.
Make it possible for forced VP8 SW fallback encoder to set min_pixels_per_frame via GetScalingSettings().

Add a min required resolution (in addition to bitrate) before releasing forced SW fallback.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/3000693003
Cr-Commit-Position: refs/heads/master@{#19390}
2017-08-17 15:58:54 +00:00
eladalon
b5c319ad8b Add rtc_event_log_unittest_helper.h to relevant BUILD.gn
BUG=None

Review-Url: https://codereview.webrtc.org/3002813002
Cr-Commit-Position: refs/heads/master@{#19389}
2017-08-17 15:32:39 +00:00
oprypin
168576be1e Make isac_fix_test use gtest (in a hacky way)
This test is the only remaining one that does not use gtest and that's
blocking some infra cleanup tasks. Ideally this test would use
webrtc/rtc_base/flags.h but that's a lot of unnecessary work.

This also replaces some exit() status codes - the logic behind this is
if you get incorrectly specified command line arguments, exit(1) is
invoked for a failure, because it's not a test failure, and if flag
parsing was done properly, it would not be a gtest failure anyway.

BUG=webrtc:7568

Review-Url: https://codereview.webrtc.org/3000033002
Cr-Commit-Position: refs/heads/master@{#19388}
2017-08-17 15:25:28 +00:00
sprang
3958ed8e6f RTC_CHECK instead of assert in vp9_impl.cc
BUG=None

Review-Url: https://codereview.webrtc.org/2994403002
Cr-Commit-Position: refs/heads/master@{#19387}
2017-08-17 15:12:10 +00:00
ehmaldonado
481c549b29 Reland of Make it possible for tests to set up trace event handlers. (patchset #1 id:1 of https://codereview.webrtc.org/2997963002/ )
Reason for revert:
This should fix it

Original issue's description:
> Revert of Make it possible for tests to set up trace event handlers. (patchset #4 id:60001 of https://codereview.webrtc.org/3002663002/ )
>
> Reason for revert:
> Breaks Chromium bots.
> https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Builder/builds/27340/steps/generate_build_files/logs/stdio
>
> Original issue's description:
> > Make it possible for tests to set up trace event handlers.
> >
> > As it is now, the first time a TRACE_EVENT... is called, the result from
> > the current handler is stored in a static const variable, and subsequent
> > calls will use that value regardless of changes to the handler.
> >
> > This is a problem if a test wants to use another handler.
> >
> > BUG=None
> >
> > Review-Url: https://codereview.webrtc.org/3002663002
> > Cr-Commit-Position: refs/heads/master@{#19382}
> > Committed: a973265622
>
> TBR=hbos@webrtc.org,kwiberg@webrtc.org,mbonadei@webrtc.org,kjellander@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=None
>
> Review-Url: https://codereview.webrtc.org/2997963002
> Cr-Commit-Position: refs/heads/master@{#19383}
> Committed: db758c2589

TBR=hbos@webrtc.org,kwiberg@webrtc.org,mbonadei@webrtc.org,kjellander@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=None

Review-Url: https://codereview.webrtc.org/2995123002
Cr-Commit-Position: refs/heads/master@{#19386}
2017-08-17 14:59:54 +00:00
asapersson
6b463faccb Turn off error resilience for VP9 if no spatial or temporal layers are configured and NACK is enabled.
Error resilience is currently always enabled for VP9 which reduces quality.

Reland of https://codereview.webrtc.org/2532053002

BUG=webrtc:6783

Review-Url: https://codereview.webrtc.org/2925253002
Cr-Commit-Position: refs/heads/master@{#19385}
2017-08-17 14:28:10 +00:00
olka
3c747665d0 Revert of Adding support for Unified Plan offer/answer negotiation. (patchset #9 id:500001 of https://codereview.webrtc.org/2991693002/ )
Reason for revert:
BUG=webrtc:8108: breaks Clang build.

Original issue's description:
> Adding support for Unified Plan offer/answer negotiation to the mediasession layer.
>
> This layer takes in a simplified "options" struct and the current local description,
> and generates a new offer/answer. Previously the options struct assumed there would
> only be one media description per media type (audio/video), but it now supports
> N number of audio/video descriptions.
>
> The |add_legacy_stream| options is removed from the mediasession.cc/.h
> in this CL.
>
> The next step is to add the ability for PeerConnection/WebRtcSession to create
> "options" to represent multiple RtpTransceivers, and apply the Unified Plan
> descriptions correctly. Right now, only Plan B descriptions will be
> generated in unit tests.
>
> BUG=chromium:465349
>
> Review-Url: https://codereview.webrtc.org/2991693002
> Cr-Commit-Position: refs/heads/master@{#19343}
> Committed: a77e6bbd30

TBR=deadbeef@webrtc.org,zhihuang@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=chromium:465349

Review-Url: https://codereview.webrtc.org/3001083002
Cr-Commit-Position: refs/heads/master@{#19384}
2017-08-17 13:50:32 +00:00
ehmaldonado
db758c2589 Revert of Make it possible for tests to set up trace event handlers. (patchset #4 id:60001 of https://codereview.webrtc.org/3002663002/ )
Reason for revert:
Breaks Chromium bots.
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Builder/builds/27340/steps/generate_build_files/logs/stdio

Original issue's description:
> Make it possible for tests to set up trace event handlers.
>
> As it is now, the first time a TRACE_EVENT... is called, the result from
> the current handler is stored in a static const variable, and subsequent
> calls will use that value regardless of changes to the handler.
>
> This is a problem if a test wants to use another handler.
>
> BUG=None
>
> Review-Url: https://codereview.webrtc.org/3002663002
> Cr-Commit-Position: refs/heads/master@{#19382}
> Committed: a973265622

TBR=hbos@webrtc.org,kwiberg@webrtc.org,mbonadei@webrtc.org,kjellander@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=None

Review-Url: https://codereview.webrtc.org/2997963002
Cr-Commit-Position: refs/heads/master@{#19383}
2017-08-17 13:07:02 +00:00
ehmaldonado
a973265622 Make it possible for tests to set up trace event handlers.
As it is now, the first time a TRACE_EVENT... is called, the result from
the current handler is stored in a static const variable, and subsequent
calls will use that value regardless of changes to the handler.

This is a problem if a test wants to use another handler.

BUG=None

Review-Url: https://codereview.webrtc.org/3002663002
Cr-Commit-Position: refs/heads/master@{#19382}
2017-08-17 13:02:20 +00:00
kwiberg
6ff045f097 Give Audio{De,En}coderIsac* an "Impl" suffix, to free up the original names
I want to publish an API for iSAC in webrtc/api/, and I want to use
the class names Audio{De,En}coderIsac{Fix,Float}.

BUG=webrtc:7835, webrtc:7841

Review-Url: https://codereview.webrtc.org/2996593002
Cr-Commit-Position: refs/heads/master@{#19381}
2017-08-17 12:31:02 +00:00
sakal
7c206b5b6c Fix a reference leak when converting I420 VideoFrame to I420Frame.
BUG=webrtc:7760
NOTRY=True

Review-Url: https://codereview.webrtc.org/2999143002
Cr-Commit-Position: refs/heads/master@{#19380}
2017-08-17 10:56:58 +00:00
andersc
f9f448b32d ObjC: Include additional files in umbrella header.
RTCAudioSession and RTCAudioSessionConfiguration allow users to handle
audio manually and is used by the AppRTCMobile example.

RTCVideoFrameBuffer exposes a protocol that users can implement to
create their own frame buffer formats, as long as they can be converted
into i420.

RTCVideoCapturer and RTCVideoViewShading are imported by other headers
already included by the umbrella header, so they were always accessible
to users. Added them to the umbrella header to make it explicit.

BUG=webrtc:7351, webrtc:8027

Review-Url: https://codereview.webrtc.org/2994253002
Cr-Commit-Position: refs/heads/master@{#19379}
2017-08-17 09:31:55 +00:00
sakal
4dee344493 Implement QP parsing in VideoDecoderWrapper.
BUG=webrtc:7760
NOTRY=True

Review-Url: https://codereview.webrtc.org/3000993002
Cr-Commit-Position: refs/heads/master@{#19378}
2017-08-17 09:18:04 +00:00
stefan
7441827b61 Reland of Make the acceptable queue in the cwnd experiment configurable. (patchset #1 id:1 of https://codereview.webrtc.org/2999893002/ )
Reason for revert:
Reland

Original issue's description:
> Revert of Make the acceptable queue in the cwnd experiment configurable. (patchset #1 id:1 of https://codereview.webrtc.org/2998753002/ )
>
> Reason for revert:
> Speculative revert to see if this caused regressions in android perf tests.
>
> Original issue's description:
> > Make the acceptable queue in the cwnd experiment configurable.
> >
> > BUG=webrtc:7926
> >
> > Review-Url: https://codereview.webrtc.org/2998753002
> > Cr-Commit-Position: refs/heads/master@{#19320}
> > Committed: 7c83c56b6d
>
> TBR=philipel@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:7926
>
> Review-Url: https://codereview.webrtc.org/2999893002
> Cr-Commit-Position: refs/heads/master@{#19337}
> Committed: c5d9e63c2b

TBR=philipel@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7926

Review-Url: https://codereview.webrtc.org/2999083002
Cr-Commit-Position: refs/heads/master@{#19377}
2017-08-17 09:13:54 +00:00
ehmaldonado
1dba8fdcb7 MB: Add an entry for "WebRTC Perf Tests (Linux Trusty swarming)"
BUG=chromium:755660
NOTRY=True

Review-Url: https://codereview.webrtc.org/3000093002
Cr-Commit-Position: refs/heads/master@{#19376}
2017-08-16 20:25:45 +00:00
Zijie He
70fbbad5ac Replace WindowUnderPoint free function with WindowFinder interface
WindowUnderPoint have different signatures on different platforms, which should
be abstract as an interface.
So this change adds a WindowFinder interface to replace WindowUnderPoint free
function. Meanwhile, this change also includes the implementation of
WindowFinderX11 for X11.

Bug: webrtc:7950
Change-Id: I897a50d4033e713b339b6b6f48b5dbbe601e8db0
Reviewed-on: https://chromium-review.googlesource.com/611745
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Zijie He <zijiehe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19375}
2017-08-16 17:45:18 +00:00
Chris Mumford
0ed6de4cad Check for prior thread annotation macros before defining.
The macros in thread_annotations.h (LOCKABLE, SHARED_LOCKS_REQUIRED, etc.)
didn't check for an existing definition before defining a new one. This
conflicts with other libraries, specifically leveldb:

https://github.com/google/leveldb/blob/master/port/thread_annotations.h
Change-Id: Ic37b7b63a0fbf84f183e446ee8735ef997b7099d

BUG=8096

Change-Id: Ic37b7b63a0fbf84f183e446ee8735ef997b7099d
Reviewed-on: https://chromium-review.googlesource.com/614441
Reviewed-by: Peter Thatcher <pthatcher@webrtc.org>
Commit-Queue: Chris Mumford <cmumford@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19374}
2017-08-16 17:31:58 +00:00
stefan
9e117c5e1b Reland of Add functionality which limits the number of bytes on the network. (patchset #1 id:1 of https://codereview.webrtc.org/3001653002/ )
Reason for revert:
Reland

Original issue's description:
> Revert of Add functionality which limits the number of bytes on the network. (patchset #26 id:500001 of https://codereview.webrtc.org/2918323002/ )
>
> Reason for revert:
> Speculative revert to see if this caused regressions in android perf tests.
>
> Original issue's description:
> > Add functionality which limits the number of bytes on the network.
> >
> > The limit is based on the bandwidth delay product, but also adds some additional slack to compensate for the sawtooth-like BWE pattern and the slowness of the encoder rate control. The delay is estimated based on the time from sending a packet until an ack is received. Since acks are received in bursts (feedback is only sent periodically), a min filter is used to estimate the rtt.
> >
> > Whenever the in flight bytes reaches the congestion window, the pacer is paused, which in turn will result in send-side queues growing. Eventually the encoders will be paused as the pacer queue grows large (currently 2 seconds).
> >
> > BUG=webrtc:7926
> >
> > Review-Url: https://codereview.webrtc.org/2918323002
> > Cr-Commit-Position: refs/heads/master@{#19289}
> > Committed: 8497fdde43
>
> TBR=terelius@webrtc.org,philipel@webrtc.org,tschumim@webrtc.org,gnish@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:7926
>
> Review-Url: https://codereview.webrtc.org/3001653002
> Cr-Commit-Position: refs/heads/master@{#19339}
> Committed: 64136af364

TBR=terelius@webrtc.org,philipel@webrtc.org,tschumim@webrtc.org,gnish@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7926

Review-Url: https://codereview.webrtc.org/2994343002
Cr-Commit-Position: refs/heads/master@{#19373}
2017-08-16 15:16:25 +00:00
kthelgason
5901d9dfe0 Remove dep on system_wrappers for apprtc and use only framework.
This resolves an issue where setting field trials from AppRTCMobile
would not affect WebRTC Core as the two are linked with different
instances of the field_trials binary.

BUG=webrtc:8106

Review-Url: https://codereview.webrtc.org/2997023002
Cr-Commit-Position: refs/heads/master@{#19372}
2017-08-16 14:28:03 +00:00
Sam Zackrisson
2ed6e4f022 Replace old logging mechanism in webrtc/modules/video_capture/linux
This replaces the WEBRTC_TRACE macros with LOG-macros.

Patchset 1: Run a formatting script, found in issue webrtc:5118.

Patchset 2: Apply manual fixes.
 - Fix cases and formatting not handled by the script
 - Replace a bit-shift / casting circus with utility function
   in video_capture_linux.cc

Bug: webrtc:5118
Change-Id: Ib49c1c4d2502834b9d655dafa7c34bc47f1d73d9
Reviewed-on: https://chromium-review.googlesource.com/603709
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19371}
2017-08-16 13:51:27 +00:00
henrika
c103653113 Avoids WebRtcAudioTrack null pointer access at stop.
Example of new stop sequence:

PID   TID
5155  5189 I WebRtcAudioTrack: stopPlayout
5155  5189 I WebRtcAudioTrack: underrun count: 0
5155  5189 I WebRtcAudioTrack: stopThread
5155  5189 I WebRtcAudioTrack: Stopping the AudioTrackThread...

5155  5236 I WebRtcAudioTrack: Stopping and flushing the audio track...
5155  5236 I WebRtcAudioTrack: The audio track has now been stopped.

5155  5189 I WebRtcAudioTrack: AudioTrackThread has now been stopped.
5155  5189 I WebRtcAudioTrack: releaseAudioResources

BUG=b/64692432

Review-Url: https://codereview.webrtc.org/3001703002
Cr-Commit-Position: refs/heads/master@{#19370}
2017-08-16 13:14:08 +00:00
kwiberg
7ea6e59735 L16 implementation of the Audio{En,De}coderFactoryTemplate APIs
(This is a re-land of https://codereview.webrtc.org/2995523002, with a
narrowing conversion removed.)

BUG=webrtc:7836, webrtc:7842

Review-Url: https://codereview.webrtc.org/2995993002
Cr-Commit-Position: refs/heads/master@{#19369}
2017-08-16 13:12:57 +00:00
Sam Zackrisson
dcbb66f2cd Replace WEBRTC_TRACE in modules/video_capture/
This replaces the WEBRTC_TRACE macros with LOG-macros in the
following directories:
webrtc/modules/video_capture/objc/
webrtc/modules/video_capture/windows/

Patchset 1: Run a formatting script, found in issue webrtc:5118.

Patchset 2: Apply manual fixes.
 - Fix cases and formatting not handled by the script

Bug: webrtc:5118
Change-Id: I0ac4b9f8f182d109844b57cfbba2574f47ab1e25
Reviewed-on: https://chromium-review.googlesource.com/605347
Reviewed-by: Per Kjellander <perkj@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19368}
2017-08-16 12:42:07 +00:00
sprang
ddcfb9fc6a Don't boost pacing rate after pause.
The pacer has a mechanism to make sure all packets are sent within some
time limit. This is based on the average queue time of the packets in
the pacer queue.

If the pacer is paused while packets are still in the queue (for
instance if the underlying transport goes down temporarily), on resume
all those packets might be past the time limit and thus will all be
burst out onto the network in a tight loop.

This CL subtracts pause time from the queue time, effectively pausing
the clock for the queue while the pacer is paused, so that when we
resume the pacing bitrate will be the same as when we paused.

BUG=webrtc:7694

Review-Url: https://codereview.webrtc.org/2994323002
Cr-Commit-Position: refs/heads/master@{#19367}
2017-08-16 12:38:49 +00:00
kwiberg
5b9746ef10 When using clang, switch on -Wc++11-narrowing
See
https://clang.llvm.org/docs/DiagnosticsReference.html#wc-11-narrowing
for datails. This catches a narrowing bug that broke a downstream
project in https://codereview.webrtc.org/2995523002/.

BUG=none

Review-Url: https://codereview.webrtc.org/2995073002
Cr-Commit-Position: refs/heads/master@{#19366}
2017-08-16 11:52:35 +00:00
Noah Richards
3004fd0888 Don't fail SetStereoPlayout(false) for Android devices.
It isn't implemented, but failing produces warning messages in logs
from code that just does the equivalent of:
SetStereoPlayout(StereoPlayoutIsAvailable)

BUG=none

Specifically:
https://cs.chromium.org/chromium/src/third_party/webrtc/voice_engine/voe_base_impl.cc?l=323

Change-Id: Iad1b026d903bbab74923db35bde50054f125d84b
Reviewed-on: https://chromium-review.googlesource.com/612218
Reviewed-by: Henrik Andreasson <henrika@webrtc.org>
Commit-Queue: Henrik Andreasson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19365}
2017-08-16 11:26:17 +00:00
owb
7fbeb0b3c9 Make path to wav file for jitter buffer simulation in event_log_visualizer configurable.
BUG=webrtc:7467

Review-Url: https://codereview.webrtc.org/2996953002
Cr-Commit-Position: refs/heads/master@{#19364}
2017-08-16 09:48:33 +00:00
Niels Möller
2bf9e73e6b Delete unneeded Start and Stop methods on FlexfecReceiveStream.
Bug: None
Change-Id: I3013cfc54ed357901f175dd408127eda75e5ba99
Reviewed-on: https://chromium-review.googlesource.com/542735
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19363}
2017-08-16 09:41:27 +00:00
asapersson
22c76c4e65 Add support for a forced software encoder fallback.
Make it possible to switch from VP8 HW -> VP8 SW -> VP8 HW depending on bitrate and resolution.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2988963002
Cr-Commit-Position: refs/heads/master@{#19362}
2017-08-16 07:53:59 +00:00
mbonadei
2b05ba1874 Remove old webrtc/base directory
The content of webrtc/base has been moved to webrtc/rtc_base and we can
now remove the original directory.

BUG=webrtc:7634

Review-Url: https://codereview.webrtc.org/2994743002
Cr-Commit-Position: refs/heads/master@{#19361}
2017-08-16 06:40:57 +00:00
emircan
f0f7378b05 Revert of Add a flags field to video timing extension. (patchset #15 id:280001 of https://codereview.webrtc.org/3000753002/ )
Reason for revert:
Speculative revet for breaking remoting_unittests in fyi bots.
https://build.chromium.org/p/chromium.webrtc.fyi/waterfall?builder=Win7%20Tester

Original issue's description:
> Add a flags field to video timing extension.
>
> The rtp header extension for video timing shuold have an additional
> field for signaling metadata, such as what triggered the extension for
> this particular frame. This will allow separating frames select because
> of outlier sizes from regular frames, for more accurate stats.
>
> This implementation is backwards compatible in that it can read video
> timing extensions without the new flag field, but it always sends with
> it included.
>
> BUG=webrtc:7594
>
> Review-Url: https://codereview.webrtc.org/3000753002
> Cr-Commit-Position: refs/heads/master@{#19353}
> Committed: cf5d485e14

TBR=danilchap@webrtc.org,kthelgason@webrtc.org,stefan@webrtc.org,sprang@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7594

Review-Url: https://codereview.webrtc.org/2995953002
Cr-Commit-Position: refs/heads/master@{#19360}
2017-08-15 19:31:23 +00:00
buildbot
124b4a150c Roll chromium_revision 70c937134d..d323a482ee (494365:494468)
Change log: 70c937134d..d323a482ee
Full diff: 70c937134d..d323a482ee

Changed dependencies:
* src/base: 9586d156d2..66d3c08e82
* src/build: 2fe6f54e10..2a5e6515a5
* src/ios: 191f52ebc0..2085f316c1
* src/testing: afae92c313..3127a16731
* src/third_party: 7899aeb437..b4122f732f
* src/third_party/catapult: 11749b52ff..d27175a044
* src/tools: 99dc07b9c0..5730fb2d3f
DEPS diff: 70c937134d..d323a482ee/DEPS

No update to Clang.

TBR=
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal

Review-Url: https://codereview.webrtc.org/3000943003
Cr-Commit-Position: refs/heads/master@{#19359}
2017-08-15 19:25:18 +00:00
Noah Richards
1871a91944 Check keepAlive before calling nativeDataIsRecording.
We're encountering a bug where audioRecord.read() can hang for long
enough that stopRecording() fails to join the recording thread (in two
seconds) and returns. In that case, JNI methods get unregistered and
when the recording thread calls nativeDataIsRecorded, it crashes when
it can't find the native method to call.

This version still isn't 100% safe, as the threading sequence still
technically allows for an ordering where (for some reason) the thread
fails to join after the final keepAlive check and long enough for all
the JNI methods to get unregistered, but that seems very unlikely.

BUG=b/64174142

Change-Id: Ie7432a70d0e53bace0885edf35e24bd3f6585399
Reviewed-on: https://chromium-review.googlesource.com/613501
Reviewed-by: Henrik Andreasson <henrika@webrtc.org>
Commit-Queue: Noah Richards <noahric@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19358}
2017-08-15 16:48:06 +00:00
Jianjun Zhu
037f3e42f2 Replace absolute path with relative path for GN files.
Bug: webrtc:7952
Change-Id: I45d889bd976f58386f803d0dc27147ea00a52e56
Reviewed-on: https://chromium-review.googlesource.com/612786
Commit-Queue: Henrik Kjellander <kjellander@webrtc.org>
Reviewed-by: Henrik Kjellander <kjellander@webrtc.org>
Reviewed-by: Edward Lemur <ehmaldonado@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19357}
2017-08-15 15:57:36 +00:00
charujain
ac31526bb5 Revert of L16 implementation of the Audio{En,De}coderFactoryTemplate APIs (patchset #5 id:80001 of https://codereview.webrtc.org/2995523002/ )
Reason for revert:
Breaks compilation in google3.

Original issue's description:
> L16 implementation of the Audio{En,De}coderFactoryTemplate APIs
>
> BUG=webrtc:7836, webrtc:7842
>
> Review-Url: https://codereview.webrtc.org/2995523002
> Cr-Commit-Position: refs/heads/master@{#19354}
> Committed: edff94df62

TBR=ossu@webrtc.org,kwiberg@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:7836, webrtc:7842

Review-Url: https://codereview.webrtc.org/2996993002
Cr-Commit-Position: refs/heads/master@{#19356}
2017-08-15 14:50:11 +00:00
buildbot
8e8f0e26b9 Roll chromium_revision f439921f66..70c937134d (494089:494365)
Change log: f439921f66..70c937134d
Full diff: f439921f66..70c937134d

Changed dependencies:
* src/base: feac46e933..9586d156d2
* src/build: 221820676e..2fe6f54e10
* src/buildtools: f4bcb07d88..ceb050498e
* src/ios: e437e37fec..191f52ebc0
* src/testing: 3f5325f618..afae92c313
* src/third_party: 058ff821a8..7899aeb437
* src/third_party/boringssl/src: https://boringssl.googlesource.com/boringssl.git/+log/ca9e8f52f1..f4ecc84644
* src/third_party/catapult: 122dd5e91b..11749b52ff
* src/tools: e78bdaf8db..99dc07b9c0
DEPS diff: f439921f66..70c937134d/DEPS

No update to Clang.

TBR=
BUG=None
CQ_INCLUDE_TRYBOTS=master.internal.tryserver.corp.webrtc:linux_internal

Review-Url: https://codereview.webrtc.org/3002653002
Cr-Commit-Position: refs/heads/master@{#19355}
2017-08-15 14:06:17 +00:00
kwiberg
edff94df62 L16 implementation of the Audio{En,De}coderFactoryTemplate APIs
BUG=webrtc:7836, webrtc:7842

Review-Url: https://codereview.webrtc.org/2995523002
Cr-Commit-Position: refs/heads/master@{#19354}
2017-08-15 13:30:18 +00:00
sprang
cf5d485e14 Add a flags field to video timing extension.
The rtp header extension for video timing shuold have an additional
field for signaling metadata, such as what triggered the extension for
this particular frame. This will allow separating frames select because
of outlier sizes from regular frames, for more accurate stats.

This implementation is backwards compatible in that it can read video
timing extensions without the new flag field, but it always sends with
it included.

BUG=webrtc:7594

Review-Url: https://codereview.webrtc.org/3000753002
Cr-Commit-Position: refs/heads/master@{#19353}
2017-08-15 12:33:27 +00:00