32 Commits

Author SHA1 Message Date
henrikg
3c089d751e Add RTC_ prefix to contructormagic macros.
We must remove dependency on Chromium, i.e. we can't use Chromium's base/logging.h. That means we need to define these macros in WebRTC also when doing Chromium builds. And this causes redefinition.

* DISALLOW_ASSIGN -> RTC_DISALLOW_ASSIGN
* DISALLOW_COPY_AND_ASSIGN -> RTC_DISALLOW_COPY_AND_ASSIGN
* DISALLOW_IMPLICIT_CONSTRUCTORS -> RTC_DISALLOW_IMPLICIT_CONSTRUCTORS

Related CL: https://codereview.webrtc.org/1335923002/

BUG=chromium:468375
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#9953}
2015-09-16 12:37:52 +00:00
sergeyu
d5ae6ae6b5 Fix ScreenCapturerWinGdi to handle DesktopFrameWin::Create() errors.
DesktopFrameWin::Create() may return nullptr when it fails to allocate
windows bitmap. ScreenCapturerWinGdi wasn't handling that case properly.

BUG=527660

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

Cr-Commit-Position: refs/heads/master@{#9865}
2015-09-05 01:38:15 +00:00
Jiayang Liu
d848d5e74a Enable cropping window capturing for Win7 when Aero is disabled.
BUG=webrtc:496110
R=sergeyu@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#9595}
2015-07-16 15:49:46 +00:00
mgiuca
e987a47f95 Removed some unused variables in Windows code.
Note: Regarding the ICMP6_CLOSE_FUNC variable in winping.cc,
Icmp6CloseHandle does not exist, and IcmpCloseHandle is the correct way
to close an IPv6 handle. Therefore the existing code is correct to use
close_ on both types of connections and this variable is unnecessary.

BUG=505319

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

Cr-Commit-Position: refs/heads/master@{#9555}
2015-07-09 07:54:02 +00:00
Peter Kasting
7faba36f79 Fix WebRTC window-capture to check for maximized state correctly.
The SW_SHOWXXX values are not bitfields, so using "&" is incorrect.

BUG=none
TEST=Verify that Chrome's WebRTC window-capture feature can capture an unoccluded, non-maximized window correctly under Windows 8 or above.
R=wez@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#9421}
2015-06-11 22:43:08 +00:00
Jiayang Liu
12e0329007 Do not use Magnifier if there are multiple screens since it sometimes crashes.
BUG=crbug/478825
R=sergeyu@chromium.org

Review URL: https://webrtc-codereview.appspot.com/43289004

Cr-Commit-Position: refs/heads/master@{#9082}
2015-04-24 15:46:15 +00:00
kjellander@webrtc.org
14665ff7d4 Roll chromium_revision e144d30..6fdb142 (318658:318841) + remove OVERRIDE macro
Clang version changed 223108:230914
Details: e144d30..6fdb142/tools/clang/scripts/update.sh

Removes the OVERRIDE macro defined in:
* webrtc/base/common.h
* webrtc/typedefs.h

The majority of the source changes were done by running this in src/:
perl -0pi -e "s/virtual\s([^({;]*(\([^({;]*\)[^({;]*))(OVERRIDE|override)/\1override/sg" `find {talk,webrtc} -name "*.h"  -o -name "*.cc*" -o -name "*.mm*"`

which converted all:
virtual Foo() OVERRIDE
functions to:
Foo() override

Then I manually edited:
* talk/media/webrtc/fakewebrtccommon.h
* webrtc/test/fake_common.h

Remaining uses of OVERRIDE was fixed by search+replace.

Manual edits were done to fix virtual destructors that were
overriding inherited ones.

Finally a build error related to the pure virtual definitions of
Read, Write and Rewind in common_types.h required a bit of
refactoring in:
* webrtc/common_types.cc
* webrtc/common_types.h
* webrtc/system_wrappers/interface/file_wrapper.h
* webrtc/system_wrappers/source/file_impl.cc

This roll should make it possible for us to finally re-enable deadlock
detection for TSan on the buildbots.

BUG=4106
R=pbos@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/41069004

Cr-Commit-Position: refs/heads/master@{#8596}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8596 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-03-04 13:04:54 +00:00
kwiberg@webrtc.org
00b8f6b364 Use base/scoped_ptr.h; system_wrappers/interface/scoped_ptr.h is going away
BUG=
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/36229004

Cr-Commit-Position: refs/heads/master@{#8517}
git-svn-id: http://webrtc.googlecode.com/svn/trunk@8517 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-02-26 14:43:50 +00:00
kwiberg@webrtc.org
2ebfac5649 Remove COMPILE_ASSERT and use static_assert everywhere
COMPILE_ASSERT is no longer needed now that we have C++11's
static_assert.

R=aluebs@webrtc.org, andrew@webrtc.org, hellner@chromium.org, henrike@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/39469004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8058 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-14 10:51:54 +00:00
kwiberg@webrtc.org
3df38b442f Unify the two copies of compile_assert.h
This patch basically deletes webrtc/base/compile_assert.h (which is
the more outdated copy) and moves
webrtc/system_wrappers/source/compile_assert.h to take its place.

R=aluebs@webrtc.org, andrew@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/36719004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@8048 4adac7df-926f-26a2-2b94-8c16560cd09d
2015-01-13 11:37:48 +00:00
sergeyu@chromium.org
5fa8c458d8 Remove mouse cursor capturer from the ScreenCapturer interface
Mouse can be captured using MouseCursorMonitor and all code in chromium
already uses it instead of ScreenCapturer.

R=jiayl@webrtc.org

Committed: https://code.google.com/p/webrtc/source/detail?r=7363

Review URL: https://webrtc-codereview.appspot.com/31529004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7365 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-02 01:47:10 +00:00
sergeyu@chromium.org
6138f0f89d Revert "Remove mouse cursor capturer from the ScreenCapturer interface"
This reverts commit 0adc4953512ee0a57cf7f3c0591b024c2316554a. It broke
FYI bots

TBR=sergeyu@chromium.org

Review URL: https://webrtc-codereview.appspot.com/27649004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7364 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-02 01:36:43 +00:00
sergeyu@chromium.org
1fced0f2aa Remove mouse cursor capturer from the ScreenCapturer interface
Mouse can be captured using MouseCursorMonitor and all code in chromium
already uses it instead of ScreenCapturer.

R=jiayl@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/31529004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7363 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-10-02 00:18:10 +00:00
jiayl@webrtc.org
bac5f0fb56 Fix an invalid memory access due to typo in win/cursor.cc.
BUG=crbug/391468
R=sergeyu@chromium.org

Review URL: https://webrtc-codereview.appspot.com/19949004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6698 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-07-15 20:32:03 +00:00
jiayl@webrtc.org
594aefa807 Do not call CaptureCursor in ScreenCapturerWinGdi if no MouseShapeObserver.
It's wasted work and affects frame rate adaptation in Chrome.

BUG=
R=sergeyu@chromium.org

Review URL: https://webrtc-codereview.appspot.com/19789004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6499 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-06-19 22:04:41 +00:00
henrike@webrtc.org
1bb5da04fe Adds missing include of assert header.
BUG=3380
R=sergeyu@chromium.org

Review URL: https://webrtc-codereview.appspot.com/14569008

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6221 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-22 14:31:14 +00:00
henrike@webrtc.org
88fbb2d86b Switch to using base/constructormagic.h and remove system_wrappers/interface/constructor_magic.h.
Same as https://webrtc-codereview.appspot.com/19519004. The issue in
http://chromegw.corp.google.com/i/internal.chromium.webrtc.fyi/builders/Linux...
is solved by this change
http://src.chromium.org/viewvc/chrome/trunk/src/third_party/libjingle/libjing...
(tested locally).

BUG=3380
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/17619005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6218 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-21 21:18:46 +00:00
jiayl@webrtc.org
7ca277b574 Initializes WINDOWPLACEMENT::length in GetCroppedWindowRect.
BUG=https://code.google.com/p/webrtc/issues/detail?id=3196
R=sergeyu@chromium.org

Review URL: https://webrtc-codereview.appspot.com/21529004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6213 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-21 16:02:31 +00:00
mcasas@webrtc.org
2fa7f79094 Revert 6202 "Switch to using base/constructormagic.h and remove ..."
> Switch to using base/constructormagic.h and remove system_wrappers/interface/constructor_magic.h.
> 
> BUG=N/A
> R=andrew@webrtc.org
> 
> Review URL: https://webrtc-codereview.appspot.com/19519004

TBR=henrike@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/14579007

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6210 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-21 11:07:29 +00:00
henrike@webrtc.org
125ffd709d Switch to using base/constructormagic.h and remove system_wrappers/interface/constructor_magic.h.
BUG=N/A
R=andrew@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/19519004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6202 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-20 15:20:44 +00:00
jiayl@webrtc.org
4220434d37 Implement the Windows screen capturer using the Magnification API.
The original ScreenCapturerWin is renamed ScreenCapturerWinGdi.

BUG=2789
TESTED=full desktop cast and single monitor cast works on win7 and win8 desktop mode. Have to use GDI capturer on win8 metro mode. Changing display configuration work on the fly.
R=sergeyu@chromium.org, wez@chromium.org

Committed: https://code.google.com/p/webrtc/source/detail?r=6048

Review URL: https://webrtc-codereview.appspot.com/12149004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6053 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-05 16:08:47 +00:00
tina.legrand@webrtc.org
7dccce3948 Revert 6048 "Implement the Windows screen capturer using the Mag..."
> Implement the Windows screen capturer using the Magnification API.
> The original ScreenCapturerWin is renamed ScreenCapturerWinGdi.
> 
> BUG=2789
> TESTED=full desktop cast and single monitor cast works on win7 and win8 desktop mode. Have to use GDI capturer on win8 metro mode. Changing display configuration work on the fly.
> R=sergeyu@chromium.org, wez@chromium.org
> 
> Review URL: https://webrtc-codereview.appspot.com/12149004

TBR=jiayl@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/15429005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6052 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-05 11:17:26 +00:00
jiayl@webrtc.org
b235c56017 Implement the Windows screen capturer using the Magnification API.
The original ScreenCapturerWin is renamed ScreenCapturerWinGdi.

BUG=2789
TESTED=full desktop cast and single monitor cast works on win7 and win8 desktop mode. Have to use GDI capturer on win8 metro mode. Changing display configuration work on the fly.
R=sergeyu@chromium.org, wez@chromium.org

Review URL: https://webrtc-codereview.appspot.com/12149004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@6048 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-05-03 00:16:29 +00:00
andrew@webrtc.org
8f69330310 Replace scoped_array<T> with scoped_ptr<T[]>.
scoped_array is deprecated. This was done using a Chromium clang tool:
http://src.chromium.org/viewvc/chrome/trunk/src/tools/clang/rewrite_scoped_ar...

except for the few not-built-on-Linux files which were updated manually.

TESTED=trybots
BUG=2515
R=niklas.enbom@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/12429004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5985 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-04-25 23:10:28 +00:00
jiayl@webrtc.org
c8ac17ca04 Adjust the captured window rect when the window is maximized.
GetWindowRect includes the window frames for maximized window even they are off screen, causing content outside the window being captured falsely. The fix is to remove the left/right/bottom window frame from the captured rect. Mouse capturing is adjusted accordingly as well.

BUG=3076
R=sergeyu@chromium.org

Review URL: https://webrtc-codereview.appspot.com/10149004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5732 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-03-20 00:06:41 +00:00
sergeyu@chromium.org
8ae72560dd Make MouseCursor mutable
MouseCursor objects were previous immutable which makes it harder to
implement deserializers when MouseCursor is sent over IPC in Chromium.

R=dcaiafa@chromium.org

Committed: https://code.google.com/p/webrtc/source/detail?r=5310

Review URL: https://webrtc-codereview.appspot.com/6059005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5314 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-12-18 02:18:01 +00:00
andrew@webrtc.org
31628aae7e Upgrade scoped_ptr to Chromium's latest version.
Analogous to the recent libjingle change: http://cl/54929753-p10.
This supports scoped_ptr<T[]> and scoped_ptr<C, FreeDeleter> rather
than scoped_array and scoped_ptr_malloc respectively.

- Add Chromium's template-based COMPILE_ASSERT. We didn't have this
previously in order to support the macro in C. Instead, move the
existing macro to compile_assert_c.h.
- Additionally copy the move.h and template_util.h depedencies and add
the WARN_UNUSED_RESULT macro.
- Leave scoped_array and scoped_ptr_malloc for now, but mark as
deprecated.
- Remove scoped_ptr foo(NULL) use. The default constructor handles it.
- Remove the now redundant COMPILE_ASSERT from peerconnection_jni.cc.
- Add a CHECK_ARRAY_SIZE macro to rtp_format_vp8_unittest.cc to remove
some repeated code.

TESTED=trybots
R=pbos@webrtc.org, tommi@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2449005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5015 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-22 12:50:00 +00:00
sergeyu@chromium.org
2df89c0c8b MouseCursorMonitor implementation for OSX and Windows.
BUG=crbug.com/173265
R=wez@chromium.org

Review URL: https://webrtc-codereview.appspot.com/2388004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4994 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-17 19:47:18 +00:00
alexeypa@chromium.org
bebf3995ce Pre-multiply images for MouseCursorShape.
BUG=chromium:267270
R=sergeyu@chromium.org

Review URL: https://webrtc-codereview.appspot.com/2173004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4685 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-05 19:32:46 +00:00
alexeypa@chromium.org
4af0878e57 Allow the screen capturer to capture oversized cursors and cursors without alpha channel (Windows).
Changes in this CL:
  - CaptureCursor() scans the cursor to verify that it has alpha channel.
  - The AND mask of the cursor is used to reconstruct transparency if the cursor does not have alpha channel.
  - CaptureCursor() always outlines the cursor when a "screen reverse" pixel detected.  Previously it was only done for black and while cursors.
    
Added desktop_capture_unittest.MouseCursorShapeTest to test the cursor conversion code.
    
BUG=chromium:223147
R=sergeyu@chromium.org

Review URL: https://webrtc-codereview.appspot.com/1627004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4210 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-10 22:29:17 +00:00
alexeypa@chromium.org
5e03f8ab67 Landing binary cursor image files to be used in a follow up CL.
See https://webrtc-codereview.appspot.com/1627004/ for more details. TBR since that CL has been reviewed and LGTMed.

TBR=sergeyu@chromium.org

BUG=chromium:223147

Review URL: https://webrtc-codereview.appspot.com/1647004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4209 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-10 21:07:31 +00:00
sergeyu@chromium.org
3d34f66292 Move screen capturers from chromium to webrtc.
R=alexeypa@chromium.org, wez@chromium.org

Review URL: https://webrtc-codereview.appspot.com/1586005

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4175 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-04 18:51:23 +00:00