248 Commits

Author SHA1 Message Date
kthelgason
dbd8b6bec4 Remove all reference to carbon api
BUG=webrtc:6282

Review-Url: https://codereview.webrtc.org/2299633002
Cr-Commit-Position: refs/heads/master@{#14080}
2016-09-06 07:38:21 +00:00
zijiehe
aa90b313b4 [WebRTC] Two DirectX capturers cannot work concurrently
DirectX capturer won't be able to update the DesktopFrame for the second
ScreenCapturerWinDirectx instance, if AcquireNextFrame() returns timeout or
unchanged error. Current solution uses |last_frame| of the second
ScreenCapturerWinDirectx instance, which also does not contain the updated frame
between this and last AcquireNextFrame() calls. Considering following situation,
(C1: capturer 1, C2: capturer 2, update: screen updated, next AcquireNextFrame()
call will return a new frame, Fx: a frame x)
update -> C2.capture returns F1 -> update -> C1.capture returns F2 ->
C2.capture unchanged
So using F1 to update the last capture frame is not correct, we need to use F2.
Refer to design doc https://goo.gl/hU1ifG for a detail description.

The change also makes DxgiDuplicatorController work with 2+ DesktopFrame queue.
Now TwoDirectxCapturers test can pass.

BUG=314516

Review-Url: https://codereview.webrtc.org/2299663003
Cr-Commit-Position: refs/heads/master@{#14077}
2016-09-05 22:40:05 +00:00
zijiehe
fef8653c5a An early analysis shows in DirectX based capturer, Windows API returns larger
dirty region than the real screen change. A similar behavior may happen on other
platforms with damage notification support. So it's better to have an individual
layer to handle the Differ logic, and remove capturing independent logic out of
each ScreenCapturer* implementation.

So this change does following things,
1. Update differ_block to handle variable height. differ_block_sse2 has been
renamed to differ_vector_sse2.

2. A new ScreenCapturerDifferWrapper implementation to help set
DesktopFrame::updated_region(). It uses an underlying ScreenCapturer to do
the real capture work, and updates the updated region of DesktopFrame returned
from OnCaptureResult function.

3. FakeDesktopCapturer and FakeScreenCapturer to generate controllable
DesktopFrame by using DesktopFrameGenerator and DesktopFramePainter.

4. Test ScreenCapturerDifferWrapper by using FakeScreenCapturer.

After this change, we can eventually remove all Differ logic from
ScreenCapturer* implementations, and fix a potential crash bug in
ScreenCapturerLinux class. It wrongly assumes previous_frame() has a same size
as current_frame(). https://goo.gl/3nSqOC

BUG=633802

TBR=kjellander@webrtc.org

Review-Url: https://codereview.webrtc.org/2202443002
Cr-Commit-Position: refs/heads/master@{#14076}
2016-09-05 22:26:40 +00:00
asapersson
4c44202dc3 Revert of [WebRTC] A real ScreenCapturer test (patchset #8 id:240001 of https://codereview.webrtc.org/2268093002/ )
Reason for revert:
ScreenCapturerTest.CaptureUpdatedRegion fails on Win DrMemory Full.

Original issue's description:
> [WebRTC] A real ScreenCapturer test
>
> We do not have a real ScreenCapturer test before. And after CL 2210443002, a new
> ScreenDrawer interface is added to the code base to draw various shapes on the
> screen. This change is to use ScreenDrawer to test ScreenCapturer. Besides test
> cases, some other changes are included,
>
> 1. A WaitForPendingPaintings() function in ScreenDrawer, to wait for a
> ScreenDrawer to finish all the pending draws. This function now only sleeps 50
> milliseconds on X11 and 100 milliseconds on Windows.
>
> 2. A Color structure to help handle a big-endian or little-endian safe color and
> provide functions to compare with DesktopFrame::data(). Both ScreenDrawer and
> DesktopFrameGenerator (in change 2202443002) can use this class to create colors
> and compare with or paint to a DesktopFrame.
>
> 3. ScreenDrawer now uses Color structure instead of uint32_t.
>
> BUG=314516
>
> TBR=kjellander@chromium.org
>
> Committed: https://crrev.com/9d1c54ace0dc9f68da0152aa1ded2a8dba0a43ae
> Cr-Commit-Position: refs/heads/master@{#14058}

TBR=sergeyu@chromium.org,jamiewalch@chromium.org,kjellander@chromium.org,zijiehe@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=314516

Review-Url: https://codereview.webrtc.org/2310953002
Cr-Commit-Position: refs/heads/master@{#14071}
2016-09-05 13:55:26 +00:00
ehmaldonado
e9cc686293 GN Templates: Move common_inherited_config to the template.
Remove common_inherited_config from the targets and add it to the
template instead.

BUG=webrtc:6187
NOTRY=True

Review-Url: https://codereview.webrtc.org/2311843002
Cr-Commit-Position: refs/heads/master@{#14069}
2016-09-05 13:10:23 +00:00
ehmaldonado
7a2ce0b738 GN Templates: Move common_config to the template.
Remove common_config from the targets' config and add
it to the template instead.

BUG=webrtc:6187
NOTRY=True

Review-Url: https://codereview.webrtc.org/2300413002
Cr-Commit-Position: refs/heads/master@{#14063}
2016-09-05 08:35:48 +00:00
zijiehe
9d1c54ace0 [WebRTC] A real ScreenCapturer test
We do not have a real ScreenCapturer test before. And after CL 2210443002, a new
ScreenDrawer interface is added to the code base to draw various shapes on the
screen. This change is to use ScreenDrawer to test ScreenCapturer. Besides test
cases, some other changes are included,

1. A WaitForPendingPaintings() function in ScreenDrawer, to wait for a
ScreenDrawer to finish all the pending draws. This function now only sleeps 50
milliseconds on X11 and 100 milliseconds on Windows.

2. A Color structure to help handle a big-endian or little-endian safe color and
provide functions to compare with DesktopFrame::data(). Both ScreenDrawer and
DesktopFrameGenerator (in change 2202443002) can use this class to create colors
and compare with or paint to a DesktopFrame.

3. ScreenDrawer now uses Color structure instead of uint32_t.

BUG=314516

TBR=kjellander@chromium.org

Review-Url: https://codereview.webrtc.org/2268093002
Cr-Commit-Position: refs/heads/master@{#14058}
2016-09-03 02:10:42 +00:00
ehmaldonado
38a2132b02 GN: Introduce templates.
Defines the rtc_executable, rtc_source_set, rtc_test and
rtc_static_library templates.

These templates provide no functionality yet, but will enable common
configuration to be introduced, avoiding repetition in every target

Changes summary:
- Prepend rtc_ to test, source_set, executable and static_library targets
- Change "configs -= [" to "suppressed_configs += ["
- Include webrtc/build/webrtc.gni where it wasn't included yet
- Delete import("//testing/test.gni"), since rtc_test makes it unnecessary.

BUG=webrtc:6187
TBR=henrik.lundin@webrtc.org,tommi@webrtc.org
NOTRY=True

Review-Url: https://codereview.webrtc.org/2301053002
Cr-Commit-Position: refs/heads/master@{#14043}
2016-09-02 11:10:41 +00:00
kjellander
131c958187 Desktop capture: Fix GN target and exclude differ* sources on iOS
Fix some out-of-sync differences between GYP and GN targets for
desktop capture.

Remove sources that aren't used on iOS for that platform, to solve
linking errors that surfaced when flipping iOS to GN by default.

BUG=webrtc:5949
NOTRY=True
TBR=sergeyu@chromium.org

Review-Url: https://codereview.webrtc.org/2289103002
Cr-Commit-Position: refs/heads/master@{#13971}
2016-08-30 11:24:07 +00:00
zijiehe
49c01d7f34 Currently there is not way to programmically test whether a ScreenCapturer
implementation can accurately capture updated regions. Especially in
ScreenCapturerWinDirectx, which has a specific updated region spreading logic
and cannot be tested through regular code path. So we need a controllable
ScreenDrawer to draw some basic shapes on the screen. And a platform independent
test case can use the ScreenDrawer to test a ScreenCapturer.

So this change addes a ScreenDrawer virtual class, and its Windows
implementation ScreenDrawerWin. A disabled gtest ScreenDrawerTest.DrawRectangles
is also added to manually test whether ScreenDrawer can work on a certain
platform.

BUG=314516

TBR=kjellander@webrtc.org

Review-Url: https://codereview.webrtc.org/2210443002
Cr-Commit-Position: refs/heads/master@{#13788}
2016-08-17 00:34:00 +00:00
ehmaldonado
90920d5bec GN: Enable msse2 flag in Mac.
It was disabled for some reason, even though in GYP it's enabled.

BUG=626067
NOTRY=True

Review-Url: https://codereview.webrtc.org/2247293002
Cr-Commit-Position: refs/heads/master@{#13780}
2016-08-16 11:13:07 +00:00
zijiehe
82dda1af5e [WebRTC] Disable DirectX capturer tests if the system does not support it.
A recent DrMemory failure has been detected after change 2099123002. After some
investigation, an uninitialized read has been detected in

NtUserGetThreadDesktop
webrtc::Desktop::GetThreadDesktop
webrtc::ScopedThreadDesktop::ScopedThreadDesktop
webrtc::ScreenCapturerWinGdi::ScreenCapturerWinGdi
webrtc::ScreenCapturer::Create
webrtc::ScreenCapturerTest_UseDirectxCapturer_Test::TestBody

So there are two issues,
1. The Directx capturer won't be triggered as the system does not support it. So
these tests should be disabled in this scenario.
2. An uninitialized read in NtUserGetThreadDesktop -> ScopedThreadDesktop
stacks, which should be suppressed. By default, these suppressions should be
placed in chromium/external with other suppressions.

So this change is a quick fix to the failure, do not use ScreenCapturerWinGdi in
ScreenCaputrerWinDirectx tests.

BUG=

Review-Url: https://codereview.webrtc.org/2247943002
Cr-Commit-Position: refs/heads/master@{#13766}
2016-08-16 02:53:40 +00:00
zijiehe
2d618de25a [Chromoting] Improve DirectX capturer to support multiple outputs
Current DirectX capturer cannot capture multiple video cards or monitors. But
according to DXGI desktop duplication sample (https://goo.gl/An0L9l), we can
capture multiple video cards and monitors by duplicating them one by one. So
instead of one IDXGIOutputDuplication instance, this change creates an
IDXGIOutputDuplication instance for each monitor, and merge the output into
one DesktopFrame.
Several other changes are also included,
1. Add supports to DXGI_OUTDUPL_DESC.DesktopImageInSystemMemory. When this flag
is true, we won't copy its content to staging buffer.
2. Capture one monitor instead of entire screen.

Above changes make the logic complex. But with some refactor work, the logic is
not disordered. Please refer to the doc @ https://goo.gl/hU1ifG.

BUG=314516

Review-Url: https://codereview.webrtc.org/2099123002
Cr-Commit-Position: refs/heads/master@{#13684}
2016-08-09 00:50:28 +00:00
zijiehe
2181078ca8 [Chromoting] Remove screen saver logic out of ScreenCapturer implementations
After change https://codereview.chromium.org/2080723008/, chromoting hosts are
using device::PowerSaveBlocker to block screen saver and suspend. So similar
logic in ScreenCapturer are not useful, and should be removed.

BUG=626839

Review-Url: https://codereview.webrtc.org/2155813003
Cr-Commit-Position: refs/heads/master@{#13491}
2016-07-16 00:05:17 +00:00
zijiehe
721ede1096 [Chromoting] DirectX based capturer should always return a temporary error
When Windows is switching display mode, DirectX based capturer may not be able
to create a new IDXGIOutputDuplication instance, which is expected. So it should
return a temporary error instead of a permanent error.

BUG=

Review-Url: https://codereview.webrtc.org/2092543003
Cr-Commit-Position: refs/heads/master@{#13279}
2016-06-24 01:41:08 +00:00
sergeyu
6ef36e708f Remove DesktopCapturer::Callback::OnCaptureCompleted()
The method was deprecated and shouldn't be used anywhere now.

BUG=webrtc:5950

Review-Url: https://codereview.webrtc.org/2080573004
Cr-Commit-Position: refs/heads/master@{#13248}
2016-06-21 23:50:07 +00:00
Sergey Ulanov
4c17abe35e Add DesktopCapturer::Result::MAX_VALUE
MAX_VALUE will be used in chromoting_messages.h to define range of
valid DesktopCapturer::Result values.

BUG=webrtc:5950
R=jamiewalch@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#13157}
2016-06-15 20:56:07 +00:00
gyzhou
abfdb53f6d Fixed partially out of screen window capture in unix
BUG=596595

Review-Url: https://codereview.webrtc.org/2044693002
Cr-Commit-Position: refs/heads/master@{#13113}
2016-06-13 16:22:10 +00:00
kjellander
fb11424551 GN: Add modules_unittests
Changes:
* Enabled protobuf for iOS globally.
* Set WEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE on a global
scope similar to GYP since tests depend on it.
* Added missing rtc_libvpx_build_vp9 variable.
* Moved out audio_coding defines into .gni file to avoid code duplication
* Renamed files to avoid object naming conflicts that GN disallows:
  * webrtc/modules/audio_processing/{echo_cancellation_unittest.cc->echo_cancellation_bit_exact_unittest.cc}
  * webrtc/modules/video_coding/codecs/vp9/{screenshare_layers_unittest.cc->vp9_screenshare_layers_unittest.cc}

BUG=webrtc:5949
TESTED=Built and ran the tests on Mac. Also ran:
gn gen out/Default --args="rtc_enable_bwe_test_logging=true"
and verified that more objects are being built (1885 vs 1883)
when compiling modules_unittests.

NOTRY=True
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2041233006
Cr-Commit-Position: refs/heads/master@{#13108}
2016-06-13 07:19:53 +00:00
sergeyu
f2a1c89241 Add r-value constructor for RefCountedObject.
Previously RefCountedObject was passing all parameters by value.
This meant that it was hard to use it with movable types, such
as unique_ptr<>. Now there is a constructor that takes r-value,
which means that RefCountedObject<std::unique_ptr<foo>> can be
initialized by passing std::unique_ptr<foo> to the constructor.

Review-Url: https://codereview.webrtc.org/2036123002
Cr-Commit-Position: refs/heads/master@{#13079}
2016-06-08 22:52:28 +00:00
sergeyu
5d910286e1 Use std::unique_ptr<> to pass frame ownership in DesktopCapturer impls.
Previously raw pointers were used for owned DesktopFrame instances.
Updated all screen and window capturer implementations to use
std::unique_ptr<>.

Also includes some other cleanups in the capturers:
 - s/NULL/nullptr
 - moved default initializers to class definition.

BUG=webrtc:5950

Review-Url: https://codereview.webrtc.org/1988783003
Cr-Commit-Position: refs/heads/master@{#13058}
2016-06-07 23:42:07 +00:00
sergeyu
b4c7b8365d Revert of Use std::unique_ptr<> to pass frame ownership in DesktopCapturer impls. (patchset #7 id:140001 of https://codereview.webrtc.org/1988783003/ )
Reason for revert:
Broke chromium builder

Original issue's description:
> Use std::unique_ptr<> to pass frame ownership in DesktopCapturer impls.
>
> Previously raw pointers were used for owned DesktopFrame instances.
> Updated all screen and window capturer implementations to use
> std::unique_ptr<>.
>
> Also includes some other cleanups in the capturers:
>  - s/NULL/nullptr
>  - moved default initializers to class definition.
>
> BUG=webrtc:5950
>
> Committed: https://crrev.com/4a627a8c13554d12412cabb8f751caee6e61ee32
> Cr-Commit-Position: refs/heads/master@{#13032}

TBR=wez@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=webrtc:5950

Review-Url: https://codereview.webrtc.org/2030333003
Cr-Commit-Position: refs/heads/master@{#13033}
2016-06-03 12:56:47 +00:00
sergeyu
4a627a8c13 Use std::unique_ptr<> to pass frame ownership in DesktopCapturer impls.
Previously raw pointers were used for owned DesktopFrame instances.
Updated all screen and window capturer implementations to use
std::unique_ptr<>.

Also includes some other cleanups in the capturers:
 - s/NULL/nullptr
 - moved default initializers to class definition.

BUG=webrtc:5950

Review-Url: https://codereview.webrtc.org/1988783003
Cr-Commit-Position: refs/heads/master@{#13032}
2016-06-03 12:15:32 +00:00
zijiehe
2970c2a237 DirectX based screen capturer logic
BUG=595530,314516

Review-Url: https://codereview.webrtc.org/1845113002
Cr-Commit-Position: refs/heads/master@{#12835}
2016-05-21 05:08:08 +00:00
Sergey Ulanov
837dde9f1d Remove DesktopFrame::shape().
Frame shape is no longer used and can be removed.

R=jamiewalch@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#12783}
2016-05-18 05:03:47 +00:00
kwiberg
fd8be3468a Remove webrtc/base/scoped_ptr.h
This is a re-land of https://codereview.webrtc.org/1942823002

TBR=tommi@webrtc.org
BUG=webrtc:5520

Review-Url: https://codereview.webrtc.org/1966423002
Cr-Commit-Position: refs/heads/master@{#12750}
2016-05-15 02:44:18 +00:00
zijiehe
99f8cd0ae2 CURSORINFO.flags should be checked before capturing its bitmap
BUG=566178, 428886

Review-Url: https://codereview.webrtc.org/1959863002
Cr-Commit-Position: refs/heads/master@{#12739}
2016-05-13 23:41:59 +00:00
kwiberg
6ab3db249b Revert of Remove webrtc/base/scoped_ptr.h (patchset #3 id:100001 of https://codereview.webrtc.org/1942823002/ )
Reason for revert:
Breaks user code. Said code needs to stop using scoped_ptr!

Original issue's description:
> Remove webrtc/base/scoped_ptr.h
>
> BUG=webrtc:5520
>
> NOTRY=True
>
> Committed: https://crrev.com/65fc62e9dd8a8716db625aaef76ab92f542ecc5a
> Cr-Commit-Position: refs/heads/master@{#12684}

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

Review-Url: https://codereview.webrtc.org/1965063003
Cr-Commit-Position: refs/heads/master@{#12686}
2016-05-11 12:07:33 +00:00
kwiberg
65fc62e9dd Remove webrtc/base/scoped_ptr.h
BUG=webrtc:5520

NOTRY=True

Review-Url: https://codereview.webrtc.org/1942823002
Cr-Commit-Position: refs/heads/master@{#12684}
2016-05-11 11:29:38 +00:00
Niels Möller
d28db7fd65 Delete all use of tick_util.h.
Depends on Chrome cl https://codereview.chromium.org/1888003002/, which was landed some time ago.

BUG=webrtc:5740
R=stefan@webrtc.org, tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12674}
2016-05-10 14:31:58 +00:00
kwiberg
84be511ac0 Replace the remaining scoped_ptr with unique_ptr in webrtc/modules/
(This is a re-land of https://codereview.webrtc.org/1921233002, which
got reverted for breaking Chromium.)

BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#12522}
2016-04-27 08:20:08 +00:00
terelius
52d4e6bf5e Revert of Replace the remaining scoped_ptr with unique_ptr in webrtc/modules/ (patchset #1 id:40001 of https://codereview.webrtc.org/1921233002/ )
Reason for revert:
Fails on Chromium FYI bots.

https://build.chromium.org/p/chromium.webrtc.fyi/builders/Linux%20Builder/builds/5392/

Original issue's description:
> Replace the remaining scoped_ptr with unique_ptr in webrtc/modules/
>
> BUG=webrtc:5520
>
> Committed: https://crrev.com/2c27a062ee46258abe9facc2cceee74f09bf6a99
> Cr-Commit-Position: refs/heads/master@{#12511}

TBR=tommi@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:5520

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

Cr-Commit-Position: refs/heads/master@{#12513}
2016-04-26 16:32:09 +00:00
kwiberg
2c27a062ee Replace the remaining scoped_ptr with unique_ptr in webrtc/modules/
BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#12511}
2016-04-26 15:38:03 +00:00
kwiberg
1c7fdd86eb Remove calls to ScopedToUnique and UniqueToScoped
They're just no-ops now, and will soon go away.

BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#12510}
2016-04-26 15:18:13 +00:00
kwiberg
4485ffb58d #include "webrtc/base/constructormagic.h" where appropriate
Any file that uses the RTC_DISALLOW_* macros should #include
"webrtc/base/constructormagic.h", but a shocking number of them don't.
This causes trouble when we try to wean files off of #including
scoped_ptr.h, since a bunch of files get their constructormagic macros
only from there.

Rather than fixing these errors one by one as they turn up, this CL
simply ensures that every file in the WebRTC tree that uses the
RTC_DISALLOW_* macros #includes "webrtc/base/constructormagic.h".

BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#12509}
2016-04-26 15:14:48 +00:00
zijiehe
809dcb4b3e Modify ScreenCaptureFrameQueue into a template
BUG=

Committed: https://crrev.com/34cad48cfbd362ae0c9027365550bfe28e2e10ef
Cr-Commit-Position: refs/heads/master@{#12458}

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

Cr-Commit-Position: refs/heads/master@{#12478}
2016-04-22 23:08:44 +00:00
kwiberg
4fb3d2bcca Add defaulted move constructors for some types that just got copy constructors
They can all benefit from moving, since they contain std::string and
std::vector. We intended to add these in
https://codereview.webrtc.org/1896953004/, but got compiler errors we
couldn't make sense of, so we skipped them. It turns out that what the
compiler was complaining about was that when we said we'd have a
user-defined move constructor, it stopped generating a copy assignment
operator for us. This CL solves the problem by outfitting the types
with defaulted copy and move assignment operators too.

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

Cr-Commit-Position: refs/heads/master@{#12469}
2016-04-22 11:59:34 +00:00
torbjorng
1bcb8f05ad Revert of Modify ScreenCaptureFrameQueue into a template (patchset #10 id:170001 of https://codereview.webrtc.org/1902323002/ )
Reason for revert:
Breaks FYI bits, e.g. this one: https://build.chromium.org/p/chromium.webrtc.fyi/builders/Win%20Builder/builds/4430

Original issue's description:
> Modify ScreenCaptureFrameQueue into a template
>
> BUG=
>
> Committed: https://crrev.com/34cad48cfbd362ae0c9027365550bfe28e2e10ef
> Cr-Commit-Position: refs/heads/master@{#12458}

TBR=sergeyu@chromium.org,zijiehe@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#12459}
2016-04-21 21:18:24 +00:00
zijiehe
34cad48cfb Modify ScreenCaptureFrameQueue into a template
BUG=

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

Cr-Commit-Position: refs/heads/master@{#12458}
2016-04-21 20:25:05 +00:00
sergeyu
6acd9f49d9 Cleanup webrtc/modules/desktop_capture
Removed deprecated files, types and methods in modules/webrtc that were
kept there to avoid breaking chromium, and which are no longer needed.

BUG=172183

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

Cr-Commit-Position: refs/heads/master@{#12457}
2016-04-21 16:46:27 +00:00
kjellander
470dd37b41 Roll chromium_revision 212f976fef..61ed337cfe (387882:388120)
https://codereview.chromium.org/1826693002 enables some
more Clang warnings which were fixed.

Change log: 212f976fef..61ed337cfe
Full diff: 212f976fef..61ed337cfe

No dependencies changed.
No update to Clang.

TBR=
NOTRY=True

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

Cr-Commit-Position: refs/heads/master@{#12422}
2016-04-19 10:03:31 +00:00
guidou
63911495de Revert of Fix screen capturers to initialize on the same thread on which Start() is called. (patchset #3 id:80001 of https://codereview.webrtc.org/1861893002/ )
Reason for revert:
This is preventing a WebRTC roll into Chromium. See https://codereview.chromium.org/1877263003/

Original issue's description:
> Fix screen capturers to initialize on the same thread on which Start() is called.
>
> Previously screen capturers were initialized when they are created.
> This means that in the CRD host they were initialized on the thread
> that's different from the thread on which they are used. Because of this
> on Linux the host was using XErrorTrap() on two different threads and
> this is not supported. Now ScreenCapturer implementations always
> initialize themselves on the thread on which Start() is called.
>
> Also added ThreadChecker to make sure the capturers are always called
> from the same thread.
>
> BUG=600432
>
> Committed: https://crrev.com/e8d4b7d8a3d298438a2ebd9ee8d5aa71f42cf033
> Cr-Commit-Position: refs/heads/master@{#12285}

TBR=jamiewalch@chromium.org,sergeyu@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=600432

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

Cr-Commit-Position: refs/heads/master@{#12334}
2016-04-12 18:42:07 +00:00
sergeyu
e8d4b7d8a3 Fix screen capturers to initialize on the same thread on which Start() is called.
Previously screen capturers were initialized when they are created.
This means that in the CRD host they were initialized on the thread
that's different from the thread on which they are used. Because of this
on Linux the host was using XErrorTrap() on two different threads and
this is not supported. Now ScreenCapturer implementations always
initialize themselves on the thread on which Start() is called.

Also added ThreadChecker to make sure the capturers are always called
from the same thread.

BUG=600432

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

Cr-Commit-Position: refs/heads/master@{#12285}
2016-04-07 17:43:46 +00:00
Sergey Ulanov
0c4de568a6 Fix potential crashes in the screen capturer on Mac
ScreenCapturerMac wasn't handling the following two cases properly
which could cause crashes:
 1. CGDisplayCreateImage() returns image with depth other than 32-bit
 2. CGDisplayCreateImage() returns image with dimensions different
    from expected (e.g. when screen resolution is being changed).

I suspect that (2) was causing the linked bug.

BUG=crbug.com/504927
R=jiayl@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12077}
2016-03-21 18:18:53 +00:00
Peter Boström
1d1944187f Replace RefCountImpl with rtc::RefCountedObject.
Removes code duplication and use of the dangerous public destructor in
RefCountImpl.

Also making wider use of scoped_refptr and fixing various leaks in the
process.

BUG=webrtc:5229
R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12075}
2016-03-21 15:44:41 +00:00
kjellander@webrtc.org
94a23f04af Reland "Add check_deps rules in DEPS files."
Relanding https://codereview.webrtc.org/1796413002/
without the change to the openmax_dl include path
(which broke downstream code).

TBR=tommi@webrtc.org
BUG=webrtc:5623
TESTED=Passing runs using:
buildtools/checkdeps/checkdeps.py --root=. talk
buildtools/checkdeps/checkdeps.py --root=. webrtc

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

Cr-Commit-Position: refs/heads/master@{#12031}
2016-03-17 11:05:50 +00:00
kwiberg
2bb3afa054 Replace scoped_ptr with unique_ptr in webrtc/modules/desktop_capture/
BUG=webrtc:5520

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

Cr-Commit-Position: refs/heads/master@{#12023}
2016-03-16 22:58:13 +00:00
kjellander
56cf60e717 Revert of Add check_deps rules in DEPS files. (patchset #2 id:60001 of https://codereview.webrtc.org/1796413002/ )
Reason for revert:
The openmax_dl include change breaks downstream projects.

Original issue's description:
> Add check_deps rules in DEPS files.
>
> Add fine-grained check_deps rules for all of WebRTC.
> This will help both maintaining sane dependencies and provides a way
> to visualize dependency graphs using the buildtools/checkdeps/graphdeps.py script.
>
> Example:
> buildtools/checkdeps/graphdeps.py --root=. --format=png \
> --out=./webrtc.png --incl='^webrtc/modules/bitrate_controller->' \
> --excl='chromium|base|external|testing|webrtc/test|\.h$|\.cc$'
>
> will produce a neat webrtc.png image showcasing the dependencies
> (according to the DEPS file) for the bitrate_controller module.
> Some dependencies are filtered out for readability.
>
> BUG=webrtc:5623
> TESTED=Passing runs using:
> buildtools/checkdeps/checkdeps.py --root=. talk
> buildtools/checkdeps/checkdeps.py --root=. webrtc
>
> R=tommi@webrtc.org
>
> Committed: https://crrev.com/086f851b7b9b4bcbd4fe507c3bf83b760bd7f4d9
> Cr-Commit-Position: refs/heads/master@{#12008}

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

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

Cr-Commit-Position: refs/heads/master@{#12009}
2016-03-16 00:41:04 +00:00
kjellander@webrtc.org
086f851b7b Add check_deps rules in DEPS files.
Add fine-grained check_deps rules for all of WebRTC.
This will help both maintaining sane dependencies and provides a way
to visualize dependency graphs using the buildtools/checkdeps/graphdeps.py script.

Example:
buildtools/checkdeps/graphdeps.py --root=. --format=png \
--out=./webrtc.png --incl='^webrtc/modules/bitrate_controller->' \
--excl='chromium|base|external|testing|webrtc/test|\.h$|\.cc$'

will produce a neat webrtc.png image showcasing the dependencies
(according to the DEPS file) for the bitrate_controller module.
Some dependencies are filtered out for readability.

BUG=webrtc:5623
TESTED=Passing runs using:
buildtools/checkdeps/checkdeps.py --root=. talk
buildtools/checkdeps/checkdeps.py --root=. webrtc

R=tommi@webrtc.org

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

Cr-Commit-Position: refs/heads/master@{#12008}
2016-03-16 00:22:53 +00:00
gyzhou
77f3e0da5a Screen was flickering when the picker for desktop medias showed up in Windows platform. Keeping track of window size for each window so that BitBlt() instead of PrintWindow() will be called for windows with unchanged sizes.
BUG=472857

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

Cr-Commit-Position: refs/heads/master@{#11721}
2016-02-23 16:57:54 +00:00