Commit Graph

4992 Commits

Author SHA1 Message Date
e183121657 Enable clang style plugin in webrtc/modules/desktop_capture
Enabled the plugin and cleaned up all issues it found, mainly virtual
destructors not being marked as override.

BUG=webrtc:163

Review-Url: https://codereview.webrtc.org/2436503004
Cr-Commit-Position: refs/heads/master@{#14793}
2016-10-26 20:15:47 +00:00
54b0acb432 Change destruction order to fix potential invalid pointer dereference.
BUG=657226

Review-Url: https://codereview.webrtc.org/2450953002
Cr-Commit-Position: refs/heads/master@{#14792}
2016-10-26 18:10:29 +00:00
059fb4480b - Replace FakeAudioProcessing in WVoE unittest with MockAudioProcessing.
- Update MockAudioProcessing to current APM interface.
- Replace calls to VoEAudioProcessing::Start/StopAecDump with direct calls on APM.
- Add AudioProcessing* in WVoE, get it from VoE, so we can call directly on APM.

BUG=webrtc:4690

Review-Url: https://codereview.webrtc.org/2446143002
Cr-Commit-Position: refs/heads/master@{#14786}
2016-10-26 12:12:29 +00:00
c1600c5695 Follow standard sending CVO rtp header extension
Include CVO in key frame.
Include CVO in delta frame when rotation changes.
Include CVO when it is non zero to support current receiver implementation.

BUG=webrtc:6600

Review-Url: https://codereview.webrtc.org/2452583002
Cr-Commit-Position: refs/heads/master@{#14784}
2016-10-26 10:33:17 +00:00
b906172e02 Reland of Move bitstream parser to more appropriate directory. (patchset #1 id:1 of https://codereview.webrtc.org/2430353004/ )
Reason for revert:
Internal project has been fixed

Original issue's description:
> Revert of Move bitstream parser to more appropriate directory. (patchset #4 id:60001 of https://codereview.webrtc.org/2370853005/ )
>
> Reason for revert:
> Breaks internal project
>
> Original issue's description:
> > Move current bitstream parser to more appropriate directory.
> >
> > This CL groups together the code that has to do with parsing H264 bitstreams.
> > This code logically belongs together, and having it in the same directory not
> > only simplifies things from a project structure perspective, but also makes it
> > easier to refactor out common parts incrementally.
> > An added benefit is that this simplifies modular compilation, where for example
> > one would like a build of WebRTC without the H264 codec-specific parts.
> >
> > BUG=webrtc:6338
> >
> > Committed: https://crrev.com/cc6817e9ce4a5ffc73efb660cf0368afbc7d9a4f
> > Cr-Commit-Position: refs/heads/master@{#14684}
>
> TBR=magjed@webrtc.org,stefan@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:6338
>
> Committed: https://crrev.com/f04f14e772f803de39f8a6128e5157127cd35103
> Cr-Commit-Position: refs/heads/master@{#14685}

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

Review-Url: https://codereview.webrtc.org/2434043002
Cr-Commit-Position: refs/heads/master@{#14783}
2016-10-26 09:48:24 +00:00
12ba1867a2 Move parsing from tests to Transport helper in RTPSenderTests
making tests cleaner

BUG=webrtc:5565

Review-Url: https://codereview.webrtc.org/2447103002
Cr-Commit-Position: refs/heads/master@{#14782}
2016-10-26 09:42:00 +00:00
hta
257dc39841 Refactoring: Hide VideoCodec.codecSpecific as "private"
This refactoring allows runtime checks that functions that access
codec specific information are using the correct union member.
The API also allows replacing the union with another implementation
without changes at calling sites.

BUG=webrtc:6603

Review-Url: https://codereview.webrtc.org/2001533003
Cr-Commit-Position: refs/heads/master@{#14775}
2016-10-25 16:05:15 +00:00
2d81eb33f5 Fix BWE simulations so that it uses the delay based BWE.
Rename kFullSendSideEstimator -> kSendSideEstimator and add new class SendSideBweSender (controlled by kSendSideEstimator) that actually uses the send side BWE.

Move the mock to logging/rtc_event_log/mock.
Allow congestion_controller, remote_bitrate_estimator and audio to depend on loggging/rtc_event_log

BUG=webrtc:6526
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2431093003
Cr-Commit-Position: refs/heads/master@{#14772}
2016-10-25 14:04:44 +00:00
701d628f5f Moved the AGC render sample queue into the audio processing module
Several subcomponents inside APM copy render audio from
the render side to the capture side using the same
pattern. Currently this is done independently for the
submodules.

This CL moves the the AGC functionality for this into
APM.

BUG=webrtc:5298, webrtc:6540

Review-Url: https://codereview.webrtc.org/2444283002
Cr-Commit-Position: refs/heads/master@{#14770}
2016-10-25 12:42:25 +00:00
a062460a68 Several subcomponents inside APM copy render audio from
the render side to the capture side using the same
pattern. Currently this is done independently for the
submodules.

This CL moves the the AECM functionality for this into
APM.

BUG=webrtc:5298, webrtc:6540

Review-Url: https://codereview.webrtc.org/2444793005
Cr-Commit-Position: refs/heads/master@{#14768}
2016-10-25 11:45:32 +00:00
cc34833809 Remove now unused code in RtpHeaderExtensionMap
Remove functions to enumerate all extensions,
Remove concept of the inactive extension.
Decision if extension should be included into rtp header is done by rtp_sender
GetTotalLengthInBytes now calculates all extension, included or not.
That is used only for calculating how much space to reserve for fec.
Since extension might suddenly be included in the next packet (which still might belong to same fec group), it is safer to calculate all registered extension.

BUG=webrtc:5565, webrtc:1994

Review-Url: https://codereview.webrtc.org/2431253003
Cr-Commit-Position: refs/heads/master@{#14763}
2016-10-25 10:12:34 +00:00
611f267370 Make WebRTC compatible with OpenH264 v1.6.
The API has changed for the slice config of SSpatialLayerConfig as of
OpenH264 v1.6. Update H264EncoderImpl with an ifdef that uses the
correct API depending on what version of OpenH264 is being used.

BUG=webrtc:6583

Review-Url: https://codereview.webrtc.org/2440113002
Cr-Commit-Position: refs/heads/master@{#14762}
2016-10-25 10:09:06 +00:00
a6b8298b48 Use relative names in GN to make Chromium happy
A recent CL (https://codereview.chromium.org/2388153004/) introduced absolute names, which caused Chromium builds
to fail.

TBR=kjellander@webrtc.org
BUG=webrtc:5801

Review-Url: https://codereview.webrtc.org/2446643005
Cr-Commit-Position: refs/heads/master@{#14755}
2016-10-24 23:31:25 +00:00
4a18f16c62 Update XServerPixelBuffer to handle errors returned from XGetImage().
XGetImage() may return NULL and XServerPixelBuffer wasn't handling this
case properly.

BUG=649487

Review-Url: https://codereview.webrtc.org/2446733003
Cr-Commit-Position: refs/heads/master@{#14754}
2016-10-24 22:45:53 +00:00
da2bf4e150 Stop using old AudioCodingModule::RegisterReceiveCodec overloads
BUG=webrtc:5801

Review-Url: https://codereview.webrtc.org/2388153004
Cr-Commit-Position: refs/heads/master@{#14753}
2016-10-24 20:47:16 +00:00
838cdb3db6 Revert of Fix chromium-style warnings. (patchset #1 id:1 of https://codereview.webrtc.org/2400993002/ )
Reason for revert:
Broke internal project

Original issue's description:
> Fix chromium-style warnings.
>
> Separate the null implementation from rtp_rtcp_defines.h, and follow chromium style guide for virtual functions.
>
> BUG=webrtc:163
>
> Committed: https://crrev.com/509eadd554de6bf938da08071c5d2c2541703134
> Cr-Commit-Position: refs/heads/master@{#14738}

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

Review-Url: https://codereview.webrtc.org/2449523002
Cr-Commit-Position: refs/heads/master@{#14750}
2016-10-24 16:38:26 +00:00
a6f495c7c2 Simplifying audio network adaptor by moving receiver frame length range to ctor.
It turns out that that audio network adaptor can always be created with knowledge of receiver frame length range. There is no need to keep some infrastructure that is used for runtime setting of receiver frame length ranges.

BUG=webrtc:6303

Review-Url: https://codereview.webrtc.org/2429503002
Cr-Commit-Position: refs/heads/master@{#14748}
2016-10-24 16:19:22 +00:00
a73f6c9726 NetEq now works with packets as values, rather than pointers.
PacketList is now list<Packet> instead of list<Packet*>.
Splicing the lists in NetEqImpl::InsertPacketInternal instead of
moving packets. Avoid moving the packet when doing Rfc3389Cng.
Removed PacketBuffer::DeleteFirstPacket and DeleteAllPackets.

BUG=chromium:657300

Review-Url: https://codereview.webrtc.org/2425223002
Cr-Commit-Position: refs/heads/master@{#14747}
2016-10-24 15:25:33 +00:00
86b92e05f9 Drop VP8 frames older than the last sync frame in the RtpFrameReferenceFinder.
BUG=webrtc:5514

Review-Url: https://codereview.webrtc.org/2392313002
Cr-Commit-Position: refs/heads/master@{#14745}
2016-10-24 14:11:57 +00:00
1655e45d85 Elimiteted race condition in the AudioMixer.
The mixer allocates an audio frame for each added data source. This
audio frame was deallocated when a source was removed from the
mixer. Source removal could happen during the mixing, and the existing
locking scheme (and the Clang thread checker) was not sufficient to
prevent a data race.

After this change, the mixer doesn't release its lock until it is
finished with the sources' Audio frames. Since multi-threaded access to
the mixer only happens when a source is added or removed, we believe
that this change wouldn't have any noticeable performance impact.

NOTRY=True

BUG=webrtc:6346

Review-Url: https://codereview.webrtc.org/2439283002
Cr-Commit-Position: refs/heads/master@{#14744}
2016-10-24 13:57:03 +00:00
2206c959f1 Revert of Fix some chromium style warnings in remote_bitrate_estimator.h (patchset #1 id:1 of https://codereview.webrtc.org/2387113008/ )
Reason for revert:
Broke internal project.

Original issue's description:
> Fix some chromium style warnings in remote_bitrate_estimator.h
>
> BUG=webrtc:163
>
> Committed: https://crrev.com/c22bcf4f4bed1f05b5e59127f93b58129cd2627f
> Cr-Commit-Position: refs/heads/master@{#14737}

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

Review-Url: https://codereview.webrtc.org/2444923002
Cr-Commit-Position: refs/heads/master@{#14743}
2016-10-24 13:43:32 +00:00
b60d1962d8 Eliminate left shift of negative value by using multiplication instead
BUG=chromium:655917

Review-Url: https://codereview.webrtc.org/2430393003
Cr-Commit-Position: refs/heads/master@{#14741}
2016-10-24 11:18:50 +00:00
5de3a7e556 Remove unused variable from delay based BWE.
BUG=None

Review-Url: https://codereview.webrtc.org/2432923003
Cr-Commit-Position: refs/heads/master@{#14739}
2016-10-24 10:43:27 +00:00
509eadd554 Fix chromium-style warnings.
Separate the null implementation from rtp_rtcp_defines.h, and follow chromium style guide for virtual functions.

BUG=webrtc:163

Review-Url: https://codereview.webrtc.org/2400993002
Cr-Commit-Position: refs/heads/master@{#14738}
2016-10-24 10:24:22 +00:00
c22bcf4f4b Fix some chromium style warnings in remote_bitrate_estimator.h
BUG=webrtc:163

Review-Url: https://codereview.webrtc.org/2387113008
Cr-Commit-Position: refs/heads/master@{#14737}
2016-10-24 09:57:11 +00:00
61c053e329 Reland of Delete webrtc::VideoFrame::CopyFrame. (patchset #1 id:1 of https://codereview.webrtc.org/2397943003/ )
Reason for revert:
Dependencies updated.

Original issue's description:
> Revert of Delete webrtc::VideoFrame::CopyFrame. (patchset #2 id:20001 of https://codereview.webrtc.org/2371363003/ )
>
> Reason for revert:
> This CL breaks internal dependencies.
>
> Original issue's description:
> > Delete webrtc::VideoFrame::CopyFrame.
> >
> > BUG=webrtc:5682
> >
> > Committed: https://crrev.com/0e7c7ce35d9449c5bb13328d1bfb04ad32e48ccc
> > Cr-Commit-Position: refs/heads/master@{#14550}
>
> TBR=magjed@webrtc.org,tommi@webrtc.org,nisse@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:5682
>
> Committed: https://crrev.com/21a18ee267146c86e188d95edf6432f71dd53aeb
> Cr-Commit-Position: refs/heads/master@{#14553}

TBR=magjed@webrtc.org,tommi@webrtc.org,ivoc@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:5682

Review-Url: https://codereview.webrtc.org/2435963002
Cr-Commit-Position: refs/heads/master@{#14731}
2016-10-24 07:44:17 +00:00
151572ba05 Delete unused class AudioSourceWithMixStatus.
BUG=webrtc:6346

Review-Url: https://codereview.webrtc.org/2437863003
Cr-Commit-Position: refs/heads/master@{#14728}
2016-10-24 07:11:59 +00:00
764e364933 Several subcomponents inside APM copy render audio from
the render side to the capture side using the same
pattern. Currently this is done independently for the
submodules.

This CL moves the the AEC functionality for this into
APM.

BUG=webrtc:5298, webrtc:6540

Review-Url: https://codereview.webrtc.org/2427553003
Cr-Commit-Position: refs/heads/master@{#14726}
2016-10-22 12:04:35 +00:00
897497361e Added the missing ReadQueuedRenderData() call to the AECM bitexactness test
BUG=webrtc:6573

Review-Url: https://codereview.webrtc.org/2437033002
Cr-Commit-Position: refs/heads/master@{#14725}
2016-10-22 11:00:44 +00:00
12986c4534 Added the missing ReadQueuedRenderData() call to the gain controller bitexactness test
BUG=webrtc:6571

Review-Url: https://codereview.webrtc.org/2441603003
Cr-Commit-Position: refs/heads/master@{#14724}
2016-10-22 09:38:37 +00:00
da38293e51 Added the missing ReadQueuedRenderData() call to the AEC bitexactness test
BUG=webrtc:6572

Review-Url: https://codereview.webrtc.org/2438733002
Cr-Commit-Position: refs/heads/master@{#14723}
2016-10-22 08:08:45 +00:00
3355f6d6f5 Avoids invalid copy of audio buffer to task queue.
Now does level estimate on the audio threads to avoid complex
copying of audio data to task queue. The old implementation could
also crash due to unclear ownership of the audio buffer.

BUG=webrtc:6569
R=kwiberg@webrtc.org

Review URL: https://codereview.webrtc.org/2433393002 .

Cr-Commit-Position: refs/heads/master@{#14720}
2016-10-21 10:45:31 +00:00
c4d2dc4e02 Delete DataLog abstraction, which was almost unused.
Configuration with rtc_enable_data_logging = true was broken in cl
https://codereview.webrtc.org/2054373002/ (which deleted the
FileWrapper::WriteText method), and apparently noone noticed.

BUG=None

Review-Url: https://codereview.webrtc.org/2439473002
Cr-Commit-Position: refs/heads/master@{#14719}
2016-10-21 08:53:01 +00:00
84fbf9ee38 SUCCEEDED macro is misused
SUCCEEDED macro is designed for HRESULT instead of BOOL.
This change exposes my lack of knowledge of native Windows APIs. :(

BUG=https://bugs.chromium.org/p/chromium/issues/detail?id=647067

Review-Url: https://codereview.webrtc.org/2440563003
Cr-Commit-Position: refs/heads/master@{#14716}
2016-10-21 00:00:40 +00:00
bdb8df895a BringSelectedWindowToFront should bring the window to front instead of only focusing it
The API is misused, please refer to the bug for detail explanation.

BUG=https://bugs.chromium.org/p/webrtc/issues/detail?id=6565

Review-Url: https://codereview.webrtc.org/2426423005
Cr-Commit-Position: refs/heads/master@{#14715}
2016-10-20 23:44:22 +00:00
6c278491ad Move audio frame memory handling inside AudioMixer.
Simplify the AudioMixer::Source interface and update the mixer
implementation to the new interface.

Instead of asking a mixer source to provide a pointer to an AudioFrame
during each mixing iteration, a mixer should supply a pointer to its
own AudioFrame.

This simplifies lifetime issues as sources do not give away an
internal pointer.

Implementation: when an audio source is added, the mixer allocates a
new AudioFrame. The audio frame is kept together in the internal class
SourceStatus together with the audio source pointer until the source
is removed.

NOTRY=True
BUG=webrtc:6346

Review-Url: https://codereview.webrtc.org/2420913002
Cr-Commit-Position: refs/heads/master@{#14713}
2016-10-20 21:24:46 +00:00
920d30bc74 Replaced thread checker with race checker in AudioMixer.
This change is due to an incorrect understanding of the threading
model in Chrome. The new AudioMixer has a thread checker to ensure
that mixing is always done from a single thread. Mixing is done on the
Audio Output Thread. When run in Chrome, it can change. Even if the thread
changes, there is never more than one audio thread, and mixing is done
sequentially.

The threading checks and variable access checks are replaced with
rtc::RaceChecker counterparts.

NOTRY=True
BUG=webrtc:6346

Review-Url: https://codereview.webrtc.org/2437913003
Cr-Commit-Position: refs/heads/master@{#14712}
2016-10-20 21:23:30 +00:00
58000a0c3d Move shared_desktop_frame.cc to webrtc/modules/desktop_capture:primitives
Previously shared_desktop_frame.cc wasn't in primitives target, but it
is used in remoting client on android and the client should depend only
on primitives, but not desktop_capture overall.

BUG=653612
R=nicholss@chromium.org

Review URL: https://codereview.webrtc.org/2436913002 .

Cr-Commit-Position: refs/heads/master@{#14709}
2016-10-20 16:34:04 +00:00
142f019d87 Append second nack list in same compound rtcp packet
instead of replace

BUG=webrtc:6483

Review-Url: https://codereview.webrtc.org/2426543002
Cr-Commit-Position: refs/heads/master@{#14708}
2016-10-20 15:22:45 +00:00
201dfe90a7 Split audio mixer into interface and implementation.
The AudioMixer is now split in a mixer and audio source interface part, which has moved to webrtc/api, and a default implementation part, which lies in webrtc/modules.

This change makes it possible to create other mixer implementations and is a first step to facilitate passing down a mixer from outside of WebRTC.

It will also create less build dependencies when the new mixer has replaced the old one.

NOTRY=True
TBR=henrik.lundin@webrtc.org
BUG=webrtc:6346

Review-Url: https://codereview.webrtc.org/2411313003
Cr-Commit-Position: refs/heads/master@{#14705}
2016-10-20 12:06:44 +00:00
5a8724564c iOS: Optimize video scaling and cropping
This CL makes scaling and cropping lazy in AVFoundationVideoCapturer and
provides optimized paths for SW and HW encoding. For SW encoding, an
efficient NV12 -> I420 cropping and scaling is implemented in
CoreVideoFrameBuffer::NativeToI420. For HW encoding, an efficient NV12 ->
NV12 cropping and scaling is implemented in
CoreVideoFrameBuffer::CropAndScaleTo. The performance improvement over
the existing cropping and scaling is that it is now done in one step
instead of making an intermediary copy of the Y plane.

There might still be room for improvement in the HW path using some HW
support. That will be explored in a future CL.

BUG=b/30939444

Review-Url: https://codereview.webrtc.org/2394483005
Cr-Commit-Position: refs/heads/master@{#14701}
2016-10-20 10:34:32 +00:00
55928fef1e QualityScaler reset bugfix
BUG=webrtc:6563
TBR=sprang@webrtc.org

Review-Url: https://codereview.webrtc.org/2434803002
Cr-Commit-Position: refs/heads/master@{#14688}
2016-10-20 07:42:59 +00:00
0489e498eb Change RefCountedObject to use perfect forwarding.
The main reason for doing this is to allow refcounted objects to accept rvalue references in ctor and be able to std::move ctor rvalue arguments.
Also, refcounted.h is now generated using pump.py instead of manually creating each ctor version.

BUG= none

Review-Url: https://codereview.webrtc.org/2425683003
Cr-Commit-Position: refs/heads/master@{#14687}
2016-10-20 07:24:06 +00:00
79f0bf3ab5 A variable in ScreenCapturerWinDirectx has a bad name
BUG=https://bugs.chromium.org/p/chromium/issues/detail?id=314516

Review-Url: https://codereview.webrtc.org/2440613002
Cr-Commit-Position: refs/heads/master@{#14686}
2016-10-20 06:40:44 +00:00
f04f14e772 Revert of Move bitstream parser to more appropriate directory. (patchset #4 id:60001 of https://codereview.webrtc.org/2370853005/ )
Reason for revert:
Breaks internal project

Original issue's description:
> Move current bitstream parser to more appropriate directory.
>
> This CL groups together the code that has to do with parsing H264 bitstreams.
> This code logically belongs together, and having it in the same directory not
> only simplifies things from a project structure perspective, but also makes it
> easier to refactor out common parts incrementally.
> An added benefit is that this simplifies modular compilation, where for example
> one would like a build of WebRTC without the H264 codec-specific parts.
>
> BUG=webrtc:6338
>
> Committed: https://crrev.com/cc6817e9ce4a5ffc73efb660cf0368afbc7d9a4f
> Cr-Commit-Position: refs/heads/master@{#14684}

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

Review-Url: https://codereview.webrtc.org/2430353004
Cr-Commit-Position: refs/heads/master@{#14685}
2016-10-19 17:34:39 +00:00
cc6817e9ce Move current bitstream parser to more appropriate directory.
This CL groups together the code that has to do with parsing H264 bitstreams.
This code logically belongs together, and having it in the same directory not
only simplifies things from a project structure perspective, but also makes it
easier to refactor out common parts incrementally.
An added benefit is that this simplifies modular compilation, where for example
one would like a build of WebRTC without the H264 codec-specific parts.

BUG=webrtc:6338

Review-Url: https://codereview.webrtc.org/2370853005
Cr-Commit-Position: refs/heads/master@{#14684}
2016-10-19 16:31:15 +00:00
b6f1fb5337 Delete RTPSender::BuildRtpHeader function
and all dependencies

BUG=webrtc:5565

Review-Url: https://codereview.webrtc.org/2399463009
Cr-Commit-Position: refs/heads/master@{#14682}
2016-10-19 13:11:44 +00:00
4e52386339 Reland of Add path for recovered packets from internal::Call to RtpStreamReceiver. (patchset #1 id:1 of https://codereview.webrtc.org/2427733002/ )
Reason for revert:
Flaky test has been fixed.

Original issue's description:
> Revert of Add path for recovered packets from internal::Call to RtpStreamReceiver. (patchset #2 id:60001 of https://codereview.webrtc.org/2390823009/ )
>
> Reason for revert:
> Speculative revert as it may be the cause of the DrMemory test failure:
> https://build.chromium.org/p/client.webrtc/builders/Win%20DrMemory%20Full/builds/5115
>
> Original issue's description:
> > Add path for recovered packets from internal::Call to RtpStreamReceiver.
> >
> > When the FlexfecReceiver recovers media packets, it inserts these into
> > internal::Call, which then distributes them to the appropriate
> > VideoReceiveStream/RtpStreamReceiver.
> >
> > BUG=webrtc:5654
> >
> > Committed: https://crrev.com/9c4b4b47f4325b48e1856566a30983f9e4e30dd0
> > Cr-Commit-Position: refs/heads/master@{#14642}
>
> TBR=stefan@webrtc.org,brandtr@webrtc.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=webrtc:5654
>
> Committed: https://crrev.com/862d74d0176fa762b3c96cf20bd36f27e7001a47
> Cr-Commit-Position: refs/heads/master@{#14652}

TBR=stefan@webrtc.org,honghaiz@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:5654

Review-Url: https://codereview.webrtc.org/2428303004
Cr-Commit-Position: refs/heads/master@{#14677}
2016-10-19 06:50:53 +00:00
249beee124 Remove DesktopRegion parameter from DesktopCapturer::Capture
BUG=https://bugs.chromium.org/p/webrtc/issues/detail?id=6513

Review-Url: https://codereview.webrtc.org/2433503002
Cr-Commit-Position: refs/heads/master@{#14676}
2016-10-19 06:13:38 +00:00
6a4607e100 Deflaky ScreenCapturerTest
ScreenCapturer tests may fail on trybot, so this change is to fix the issue.

Changes include,
1. Sometimes, a capturer may capture part of the change, i.e. usually the draw
actions are not atomic. So the updated_region may be inaccurate. So I have added
a MayDrawIncompleteShapes() function in ScreenDrawer. If it returns false, the
updated_region check will be ignored.
2. Several test cases may run concurrently, which makes one ScreenDrawer won't
really work. Its window may be covered by another ScreenDrawer. So I have added
a system wide lock to ensure only one ScreenDrawer is working at a certain time.
3. On unity (Linux), the top several pixels of a window may be covered by a
shadow effect if the window is not focused. So I have added a BringToFront()
function, and call it in WaitForPendingDraws().
4. On Windows, the drawn shapes are 'temporary drawing', which will be erased
once the window is covered by another one. So I repeat DrawRectangle() function
call in the test case.

TODO(zijiehe): The DISABLED_ prefixes will be added back after the code review.
And I will move these test cases into modules_test in a coming change.

BUG=647067

Review-Url: https://codereview.webrtc.org/2337073007
Cr-Commit-Position: refs/heads/master@{#14674}
2016-10-19 01:22:25 +00:00