Commit Graph

6042 Commits

Author SHA1 Message Date
245f17e344 Delete old CongestionController class
Replaced by ReceiveSideCongestionController and
SendSideCongestionController.

Bug: webrtc:6847
Change-Id: I79caa019c883f8f716d0dd52d56bbdc2f8df0ded
Reviewed-on: https://chromium-review.googlesource.com/616763
Commit-Queue: Niels Moller <nisse@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19423}
2017-08-21 10:43:33 +00:00
bdd555c7a7 VideoProcessor: mini-fixes in preparation for task queue CL.
* Make ProcessFrame return void.
* Make |encode_callback_| and |decode_callback_| direct members.
* Remove ::EncodedFrameSize() and ::EncodedFrameType()
* Remove unused |timestamp| member from FrameInfo.
* Reorder printf output from PrintCodecSettings.
* Make some member functions const.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2998063002
Cr-Commit-Position: refs/heads/master@{#19421}
2017-08-21 08:34:04 +00:00
8b844b16eb Only disable -Wthread-safety-attributes warning for Clang.
Clang is enabled by default and we currently lack coverage for building on Windows
with MSVC (see crbug.com/757293). This should unblock rolling WebRTC into
Chromium DEPS. We need to improve our trybot coverage for standalone WebRTC
to prevent things like this in the future though (crbug.com/756840).

BUG=webrtc:8119,chromium:756840,chromium:757293
TBR=hbos@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/3003473002
Cr-Commit-Position: refs/heads/master@{#19420}
2017-08-21 04:37:21 +00:00
a36165c77b Final version of BBR, with tweaks made for WebRTC, major changes:
1) Entering PROBE_RTT when necessary.
2) Congestion window gain of 0.65 instead of constant 4 packets.
3) {1.1, 0.9} pair instead of {1.25, 0.75}
4) Recovery mode.
5) No reaction to losses due to Recovery mode's implementation.
6) Supports encoder.
7) A new test compiling most of the simulation tests.
8) Bucket for high gain phase, disabled by default.
9) Pacer specific to BBR.

BUG=webrtc:7713

Review-Url: https://codereview.webrtc.org/2999073002
Cr-Commit-Position: refs/heads/master@{#19418}
2017-08-20 16:19:58 +00:00
d64072c598 Revert of Stop silently accepting unsupported flags in test binaries (patchset #5 id:150001 of https://codereview.webrtc.org/2968003003/ )
Reason for revert:
Causes failures on perf bots
https://luci-milo.appspot.com/buildbot/client.webrtc.perf/Mac%2010.11/3567

Original issue's description:
> Stop silently accepting unsupported flags in test binaries
>
> Instead explicitly ignore only the flags we know should be ignored.
>
> BUG=webrtc:7568
>
> Review-Url: https://codereview.webrtc.org/2968003003
> Cr-Commit-Position: refs/heads/master@{#19412}
> Committed: a2782f6f5d

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

Review-Url: https://codereview.webrtc.org/3002963002
Cr-Commit-Position: refs/heads/master@{#19413}
2017-08-18 14:22:36 +00:00
a2782f6f5d Stop silently accepting unsupported flags in test binaries
Instead explicitly ignore only the flags we know should be ignored.

BUG=webrtc:7568

Review-Url: https://codereview.webrtc.org/2968003003
Cr-Commit-Position: refs/heads/master@{#19412}
2017-08-18 14:12:20 +00:00
3042c2d5e0 Reland of quest keyframes more frequently on stream start/decoding error. (patchset #1 id:1 of https://codereview.chromium.org/2995153002/ )
Reason for revert:
iOS workaround.

Original issue's description:
> 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}
> Committed: 53959fcc2b

TBR=terelius@webrtc.org,stefan@webrtc.org,noahric@chromium.org,deadbeef@webrtc.org,tkchin@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.

BUG=webrtc:8074

Review-Url: https://codereview.webrtc.org/2996153003
Cr-Commit-Position: refs/heads/master@{#19410}
2017-08-18 11:55:02 +00:00
5afa3f2690 Fix for alr detection bug on pause.
BUG=webrtc:7926

Review-Url: https://codereview.webrtc.org/2995183002
Cr-Commit-Position: refs/heads/master@{#19407}
2017-08-18 10:38:49 +00:00
ba050a6d6d Reland of Add a flags field to video timing extension. (patchset #1 id:1 of https://codereview.webrtc.org/2995953002/ )
Reason for revert:
Create reland CL to add fix to.

Original issue's description:
> 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}
> Committed: f0f7378b05

TBR=danilchap@webrtc.org,kthelgason@webrtc.org,stefan@webrtc.org,emircan@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7594

Review-Url: https://codereview.webrtc.org/2996153002
Cr-Commit-Position: refs/heads/master@{#19405}
2017-08-18 09:51:12 +00:00
6dfed673ce Remove xians@webrtc.org from OWNERS
No longer active with WebRTC, last commit 2014-10-10

BUG=None
NOTRY=True

Review-Url: https://codereview.webrtc.org/2999183002
Cr-Commit-Position: refs/heads/master@{#19403}
2017-08-18 08:05:48 +00:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
1bf0ff36ea Roll chromium_revision f156b499f7..f439921f66 (493756:494089)
Change log: f156b499f7..f439921f66
Full diff: f156b499f7..f439921f66

Changed dependencies:
* src/base: c9ab1936b1..feac46e933
* src/build: 5fecec2d69..221820676e
* src/ios: bf72566bf8..e437e37fec
* src/testing: 1330967db2..3f5325f618
* src/third_party: 0a591a99a3..058ff821a8
* src/third_party/catapult: 0eeb5baed7..122dd5e91b
* src/tools: 3136678749..e78bdaf8db
DEPS diff: f156b499f7..f439921f66/DEPS

Clang version changed 309984:310694
Details: f156b499f7..f439921f66/tools/clang/scripts/update.py

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

Review-Url: https://codereview.webrtc.org/3001673002
Cr-Commit-Position: refs/heads/master@{#19350}
2017-08-15 10:16:50 +00:00
53d76c6190 Almost full implementation of BBR's core, missing receiver side implementation, pacer, and BitrateObserver class which is responsible for communication between BBR and pacer/encoder. Significant changes: Recovery mode and a separate bucket for the high gain phase.
BUG=webrtc:7713

Review-Url: https://codereview.webrtc.org/2990163002
Cr-Commit-Position: refs/heads/master@{#19349}
2017-08-15 09:26:22 +00:00
7d829525aa Change OpenSLES blacklist warning to debug.
Given the current state of OpenSLES (disabled in many places), making
this a debug line makes more sense than an error.

BUG=none

Change-Id: I16d46d3f8234ebeffe820d92e7a6d7ed3eae11cd
Reviewed-on: https://chromium-review.googlesource.com/611491
Commit-Queue: Henrik Andreasson <henrika@webrtc.org>
Reviewed-by: Henrik Andreasson <henrika@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19340}
2017-08-14 15:39:44 +00:00
64136af364 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}
2017-08-14 15:03:17 +00:00
5d6891000f Don't use rvalue reference function arguments in the audio coding module
Rvalue reference arguments are generally banned by the style guide.

Bug: None
Change-Id: I4314859623ffcf056f53c42087b59696b5e71690
Reviewed-on: https://chromium-review.googlesource.com/531028
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Michael T <tschumim@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19338}
2017-08-14 14:10:14 +00:00
c5d9e63c2b 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}
2017-08-14 12:54:58 +00:00
ec86be0962 Reduce locking when collecting receive statistic
BUG=None

Review-Url: https://codereview.webrtc.org/2997803002
Cr-Commit-Position: refs/heads/master@{#19336}
2017-08-14 12:51:02 +00:00
dc5fc82c62 Remove older AEC-dump interface.
This CL completely removes the methods
AudioProcessing::{Start,Stop}DebugDumpRecording. These methods have
been replaced with AudioProcessing::{Attach,Detach}AecDump. Their
implementation was removed in the parent CL
https://chromium-review.googlesource.com/c/589147

Bug: webrtc:7404
Change-Id: Ia3d5314985af9c74f79c94c514ded1f8afc78fb5
Reviewed-on: https://chromium-review.googlesource.com/589152
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19334}
2017-08-14 10:35:40 +00:00
7731bc829c Remove older AEC-dump implementation.
AudioProcessingModule has a feature to make a recording of its
configuration, inputs and outputs over a period of time. In the past
CLs, this feature has been rewritten to move file IO away from
real-time audio threads. The interface has changed from
{Start,Stop}DebugDumpRecording to {Attach,Detach}AecDump.

This CL removes the previous implementation of the old interface
StartDebugRecording. The public interface is left to not cause
problems to downstream projects. It will be removed in the dependent
CL https://chromium-review.googlesource.com/c/589152/

With this CL, usage of WEBRTC_AUDIOPROC_DEBUG_DUMP and ~300 LOC of
logging code is removed from AudioProcessingImpl.

Bug: webrtc:7404
Change-Id: I16e7b557774e4bc997e1f5de4f97ed2c31d63879
Reviewed-on: https://chromium-review.googlesource.com/589147
Reviewed-by: Alessio Bazzica <alessiob@webrtc.org>
Commit-Queue: Alex Loiko <aleloi@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19332}
2017-08-14 08:46:30 +00:00
deac84107f Rename SetProcessParams -> SetTestConfig.
Also remove |key_frame_interval| from argument list, since it is always
set to -1.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2999643002
Cr-Commit-Position: refs/heads/master@{#19331}
2017-08-14 08:29:18 +00:00
ef8eb8c10d Reorganize code in plot_videoprocessor_integrationtest.cc.
* Don't loop over fps, but do loop over codec implementation type.
* Order codec settings as they are defined in the test.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/3000613002
Cr-Commit-Position: refs/heads/master@{#19330}
2017-08-14 08:06:16 +00:00
0bc8423fe5 Move RtcpReportBlocks implementation from ReceiveStatistics to ReceiveStatisticsImpl
BUG=webrtc:8016

Review-Url: https://codereview.webrtc.org/2997783002
Cr-Commit-Position: refs/heads/master@{#19327}
2017-08-11 15:12:54 +00:00
77920a415b Minor improvements to VideoProcessorIntegrationTest.
* Create all encoders/decoders using factories.
* Add ::Release() method, to mirror the existing ::Init().
* Remove unnecessary ::test prefixes.
* Reorganize constants and members.
* Remove extraneous packet loss rate assignments.
* Remove members |start_frame_rate_| and |num_temporal_layers_|.
* Explicitly give ::SetUpObjects(.) access to initial rates.
* Change visualization output file names.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2999613002
Cr-Commit-Position: refs/heads/master@{#19326}
2017-08-11 14:48:15 +00:00
628ac5964e 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}
2017-08-11 10:41:44 +00:00