Commit Graph

5965 Commits

Author SHA1 Message Date
45ca37c022 Replace WEBRTC_TRACE logging in modules/media_file/
Patch set 1:
Run a script to replace occurrences of WEBRTC_TRACE logging with the new style,
in webrtc/modules/media_file/.

Patch set 2:
 - Manually fix log lines not handled by the script
 - Update the included headers
 - Remove the now unused object ID variables

Bug: webrtc:5118
Change-Id: I1acbaec3fbbdf1deb7b934624a2f1fd38253c7e9
Reviewed-on: https://chromium-review.googlesource.com/602007
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Commit-Queue: Sam Zackrisson <saza@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19470}
2017-08-23 17:30:38 +00:00
82931001c2 Use small BWE period when there is a true network degradation.
Bug: webrtc:8105
Change-Id: I751b89194f3fdb10ea41c6f9e48e38edefcbef1a
Reviewed-on: https://chromium-review.googlesource.com/616724
Commit-Queue: Minyue Li <minyue@webrtc.org>
Reviewed-by: Michael T <tschumim@webrtc.org>
Reviewed-by: Stefan Holmer <stefan@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19469}
2017-08-23 17:22:28 +00:00
0fcb74d749 Robustified the detection of linear filter quality in AEC3
BUG=webrtc:8141

Review-Url: https://codereview.webrtc.org/3000383002
Cr-Commit-Position: refs/heads/master@{#19468}
2017-08-23 16:18:49 +00:00
09a76193f5 Resolves threading issues when audio is interrupted on iOS.
Before this change we could crash in Debug when WebRTC audio was first
interrupted and then resumed again. The reason was that the new audio
stream stems from a new native I/O thread and that triggered thread
checkers. With this change, failing thread checkers are detached when
audio is interrupted to ensure that they don't fail when audio is restarted.

NOTRY=TRUE

Bug: webrtc:8126
Change-Id: Ib36ff6bc942477730aba60066f049ed0c43d3901
Reviewed-on: https://chromium-review.googlesource.com/628716
Commit-Queue: Henrik Andreasson <henrika@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19465}
2017-08-23 14:12:07 +00:00
1cc5fc3ebf Fix places that trigger no-unused-lambda-capture
no-unused-lambda-capture was suppressed, but it's been decided as desireable to stop suppressing it. This CL fixes places in the code that trigger it.

1. Some unnecessary captures removed.
2. s/constexpr/const when capturing a float by value - this is good enough to stop the error.
3. Complete removal of the constexpr/const-modifier for int-types as a workaround.

BUG=webrtc:7133

Review-Url: https://codereview.webrtc.org/3005433002
Cr-Commit-Position: refs/heads/master@{#19462}
2017-08-23 11:15:18 +00:00
f9d7eca9b0 Check child windows in CroppingWindowCapturerWin
On Windows a window may be covered by its own child window. So this change also
detects child windows by using EnumChildWindow().
The tooltip or context menu of the child window still cannot be detected after
this change. See bug for details.

Bug: webrtc:8062
Change-Id: I8455a9206d6a1d9da61013ac9debba4d3edae7d8
Reviewed-on: https://chromium-review.googlesource.com/619728
Commit-Queue: Zijie He <zijiehe@chromium.org>
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19457}
2017-08-22 21:49:24 +00:00
51d49b4983 Reland of Stop silently accepting unsupported flags in test binaries (patchset #1 id:1 of https://codereview.webrtc.org/3002963002/ )
Reason for revert:
Relanding without changes.
Problem with unused flags was fixed in
https://codereview.webrtc.org/2998143002/

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

TBR=kjellander@webrtc.org,henrika@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:7568

Review-Url: https://codereview.webrtc.org/2999383002
Cr-Commit-Position: refs/heads/master@{#19455}
2017-08-22 17:55:47 +00:00
96b951c593 Make AEC3 recover more quickly for lost capture data
This CL ensures that AEC3 recovers more quickly when capture data is
lost in such a manner that the echo path, as seen by AEC3, becomes
noncausal due to the AEC3 buffer misalignment caused by the data loss.

The CL adds the assumption of a minimum echo path delay of 5 blocks
and makes the hysteresis in the delay selection one-sided.

BUG=chromium:757796, webrtc:8131

Review-Url: https://codereview.webrtc.org/2998223002
Cr-Commit-Position: refs/heads/master@{#19454}
2017-08-22 17:26:07 +00:00
bcc655c2c7 Revert of Reimplement the builtin audio codec factories using the new stuff in api/ (patchset #1 id:60001 of https://codereview.webrtc.org/2997713002/ )
Reason for revert:
Speculatively reverting, likely breaks chromium.webrtc.fyi.

Failed to create local offer: Test failed: Error: setSdpDefaultCodec() failed: "Unknown ID for |codec| = 'G722'."

Failing bots:
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Mac%20Tester/builds/42349
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win8%20Tester/builds/1561
https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win10%20Tester/builds/8517

Original issue's description:
> Reimplement the builtin audio codec factories using the new stuff in api/
>
> The whole point of all the audio codec stuff we've recently published
> in api/ is to function as lego bricks so that building stuff like our
> builtin audio codec factories will be easy.
>
> BUG=webrtc:7821, webrtc:7822
>
> Review-Url: https://codereview.webrtc.org/2997713002
> Cr-Commit-Position: refs/heads/master@{#19446}
> Committed: 417989a864

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:7821, webrtc:7822

Review-Url: https://codereview.webrtc.org/2996373002
Cr-Commit-Position: refs/heads/master@{#19452}
2017-08-22 15:13:37 +00:00
5c8942aee1 Move PacedSender ownership to RtpTransportControllerSend.
BUG=webrtc:8089
R=nisse@webrtc.org, terelius@webrtc.org

Review-Url: https://codereview.webrtc.org/3000773002 .
Cr-Commit-Position: refs/heads/master@{#19451}
2017-08-22 14:16:49 +00:00
440b6d9a0f Move video send/receive stream headers to webrtc/call.
Moved the headers video_receive_stream.h and video_send_stream.h from
webrtc/ into webrtc/call/ as part of the Slim and Modular work.

The GN target webrtc:video_stream_api has moved to
webrtc/call:video_stream_api.

There are headers left in webrtc/ with the same name including the
moved headers in webrtc/call/ for not breaking external projects
depending on WebRTC.

At the same time, some minor cleanup is done: Non-pure-virtual functions declared in the two affected headers now have definitions in the same target. After making this change, our 'chromium-style' plugin detected some style violations that have now been fixed: non-inlined constructors and destructors have been added to a number of classes, both inside the GN target of the two affected headers, and in other targets.

BUG=webrtc:8107

Review-Url: https://codereview.webrtc.org/3000253002
Cr-Commit-Position: refs/heads/master@{#19448}
2017-08-22 12:43:23 +00:00
aaaf2db253 Minor changes to TestVp8Impl.
BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/3001663002
Cr-Commit-Position: refs/heads/master@{#19447}
2017-08-22 12:42:06 +00:00
417989a864 Reimplement the builtin audio codec factories using the new stuff in api/
The whole point of all the audio codec stuff we've recently published
in api/ is to function as lego bricks so that building stuff like our
builtin audio codec factories will be easy.

BUG=webrtc:7821, webrtc:7822

Review-Url: https://codereview.webrtc.org/2997713002
Cr-Commit-Position: refs/heads/master@{#19446}
2017-08-22 12:39:19 +00:00
4553562fe3 Remove unnecessary RTPFragmentationHeader from VideoProcessor callbacks.
This test is and should be independent of RTP, so we don't need the
information provided in this struct.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2995403002
Cr-Commit-Position: refs/heads/master@{#19443}
2017-08-22 10:33:11 +00:00
bdbc8895f3 Revert of Fix the video buffer size should take rtt into consideration (patchset #3 id:40001 of https://codereview.chromium.org/2980413002/ )
Reason for revert:
We are not certain this is the behavior we want.

Original issue's description:
> Fix the video buffer size should take rtt into consideration
>
> BUG=webrtc:8010
>
> Review-Url: https://codereview.webrtc.org/2980413002
> Cr-Commit-Position: refs/heads/master@{#19285}
> Committed: f1e08d0b58

TBR=sprang@webrtc.org,gustavogb@gmail.com
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:8010

Review-Url: https://codereview.webrtc.org/3002033002
Cr-Commit-Position: refs/heads/master@{#19442}
2017-08-22 09:08:51 +00:00
97c3fc13b5 Respect DesktopCaptureOptions::detect_updated_region() in ScreenCapturerMac
Bug: NONE
Change-Id: I5606f2d1fcf2546cb5647b3f86a374a66ceac200
Reviewed-on: https://chromium-review.googlesource.com/609380
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Zijie He <zijiehe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19439}
2017-08-22 03:11:02 +00:00
565d046edc Redo 587688 and 592088 to add histograms in capturer
This change redoes
https://chromium-review.googlesource.com/587688
and
https://chromium-review.googlesource.com/592088

The above two changes added histograms in webrtc capturer implementations to
track the edge cases.

After change https://chromium-review.googlesource.com/c/617845, this change
should be safe to be merged into webrtc.

Bug: webrtc:8040, webrtc:8046
Change-Id: I28b9f26227a5a231c918969d8280ede91015dbe4
Reviewed-on: https://chromium-review.googlesource.com/615852
Reviewed-by: Jamie Walch <jamiewalch@chromium.org>
Commit-Queue: Zijie He <zijiehe@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19437}
2017-08-22 00:41:02 +00:00
f0a1dd9e20 Fix compile error for the win_msvc_rel bot.
During a period of about one month we have only built with clang and not msvc, and during this period code that does not build with msvc have been submitted.

BUG=webrtc:8122

Review-Url: https://codereview.webrtc.org/2999343002
Cr-Commit-Position: refs/heads/master@{#19433}
2017-08-21 15:53:47 +00:00
2ee432d51c Ensures that built-in AGC is enabled on iOS.
Bug: b/63895696
Change-Id: I8503299b5e57bd8db99ffc7947883d67dccf19e0
Reviewed-on: https://chromium-review.googlesource.com/621066
Commit-Queue: Henrik Andreasson <henrika@webrtc.org>
Reviewed-by: Per Åhgren <peah@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#19429}
2017-08-21 13:59:48 +00:00
c8c59059b7 VideoProcessor: make it runnable on a task queue.
* Guard members with a SequencedTaskChecker.
* Intercept encoder/decoder callbacks, and post onto task queue if needed.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2996253002
Cr-Commit-Position: refs/heads/master@{#19428}
2017-08-21 13:44:16 +00:00
0069b45179 TestVp8Impl: Remove unused arguments and member variable.
Make WaitForEncodedFrame void.
Verify QP for each encoded frame.
Add SetupCodecSettings.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/2995213002
Cr-Commit-Position: refs/heads/master@{#19426}
2017-08-21 12:50:46 +00:00
228fb0e1ec H264: Don't disable compiler warning by using NO_THREAD_SAFETY_ANALYSIS.
The LockManagerOperation global function uses void** which does not work
well with the thread_annotations.h macros and produce compiler warnings
on clang (chromium default). Workarounds to this is hacky and unhelpful
so we disable the analysis for this function, which isn't helpful in
this case anyway.

webrtc_h264_config is no longer needed and is removed.

BUG=8090, 8119

Review-Url: https://codereview.webrtc.org/3000263002
Cr-Commit-Position: refs/heads/master@{#19425}
2017-08-21 12:17:17 +00:00
ed0e436688 VideoProcessorIntegrationTest: mini-fixes in preparation for task queue CL.
* Rename some members.
* Shorten visualization file names.
* Make some member functions static, in preparation for moving them
  to be helper functions in an anonymous namespace.

BUG=webrtc:6634

Review-Url: https://codereview.webrtc.org/3001193002
Cr-Commit-Position: refs/heads/master@{#19424}
2017-08-21 11:15:24 +00:00
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