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
sergeyu@chromium.org
e6e749da38
Add MouseCursorRenderer.
...
The new class acts as a wrapper for DesktopCapturer interface. It takes
mouse shape and position from MouseCursorCapturer and renders it on the
frames produced by underlying DesktopCapturer.
BUG=crbug.com/173265
R=wez@chromium.org
TBR=andrew@webrtc.org (modules.gyp)
Review URL: https://webrtc-codereview.appspot.com/2387004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4968 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-16 02:48:41 +00:00
sergeyu@chromium.org
2767b53f66
Add MouseCursorCapturer interface with implementation for X11.
...
The new interface will be used to capture cursor shape and position and
blend it into the image captured with desktop capturers.
BUG=crbug.com/173265
R=wez@chromium.org
TBR=andrew@webrtc.org (modules.gyp)
Review URL: https://webrtc-codereview.appspot.com/2386005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4967 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-16 02:42:38 +00:00
sergeyu@chromium.org
30792987b8
Remove empty line in SharedXDisplay::RemoveEventHandler.
...
TBR=wez@chromium.org
Review URL: https://webrtc-codereview.appspot.com/2397004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4958 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-14 17:58:46 +00:00
sergeyu@chromium.org
7419a72383
Add event handling in SharedXDisplay.
...
SharedXDisplay has to handle X events because the events may belong to
different clients of that class.
R=wez@chromium.org
Review URL: https://webrtc-codereview.appspot.com/2386004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4953 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-13 00:44:09 +00:00
sergeyu@chromium.org
894e6fe9ea
Add DesktopCaptureOptions class.
...
The new class is used to pass configuration parameters to screen/window
capturers. It also allows to share X Window connection between multiple
objects.
R=wez@chromium.org
Review URL: https://webrtc-codereview.appspot.com/2374004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4952 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-10-12 22:40:05 +00:00
sergeyu@chromium.org
becbefaee6
Fix WindowCapturerWin to capture window decorations after window size changes.
...
DWM doesn't update window decorations in bitmap captured
from GetWindowDC(). Work it around by calling PrintWindow()
after each resize (which somehow affects what's later
captured from GetWindowDC()). That solution avoids the
downsides of PrintWindow() (namely flickering) while still
allowing to capture window decorations correctly.
BUG=crbug.com/289759
R=alexeypa@chromium.org
Review URL: https://webrtc-codereview.appspot.com/2295004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4847 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-25 22:56:59 +00:00
sergeyu@chromium.org
8d757ac0a2
Fix window capturer not to leak HDC.
...
Previously Windows window capturer kept DC handles between captures. As
result it was leaking DC handles in SelectWindow(). Fixed it so that it
calls GetWindowDC() for each capture.
R=alexeypa@chromium.org
Review URL: https://webrtc-codereview.appspot.com/2289004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4834 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-24 23:13:51 +00:00
sergeyu@chromium.org
958cdf68f3
Fix window capturer to stop capturing when the target is minimized.
...
BUG=crbug.com/288205
R=alexeypa@chromium.org
Review URL: https://webrtc-codereview.appspot.com/2273005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4833 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-24 22:10:13 +00:00
sergeyu@chromium.org
2edb642810
Fix bugs in DesktopRegion::Subtract().
...
Fixed a bug that caused the crash in the linked bug and also couple of
other issues in the same code. Also added more tests.
BUG=crbug.com/295057
R=wez@chromium.org
Review URL: https://webrtc-codereview.appspot.com/2259005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4806 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-20 21:29:18 +00:00
sergeyu@chromium.org
6ab45b9dab
Implement DesktopRegion subtraction.
...
Region subtraction is used in chromoting client, so it's needed to
replace SkRegion.
R=wez@chromium.org
Review URL: https://webrtc-codereview.appspot.com/2205004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4741 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-13 19:53:16 +00:00
sergeyu@chromium.org
6a5cc9d899
Fix crash in the window capturer on windows
...
BUG=crbug.com/289753
R=wez@chromium.org
Review URL: https://webrtc-codereview.appspot.com/2203005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4737 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-09-12 19:17:26 +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
sergeyu@chromium.org
9ded07e3a4
Fix typo in InvertedDesktopFrame
...
BUG=279334
R=wez@chromium.org
Review URL: https://webrtc-codereview.appspot.com/2141004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4643 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-30 01:05:14 +00:00
sergeyu@chromium.org
01cb3ad883
Fix image flipping for OpenGL-based screen capturer on Mac.
...
I broke captured image flipping when refactoring this code while it was
still in chromium. Previously we had CaptureData that was returned from
capturers with correctly inverted stride, but frames were still stored
with positive stride. CaptureData was removed and so the returned frames
always had positive stride, which is not correct. Now ScreenCapturerMac
uses frames with inverted stride when capturing using OpenGL.
R=wez@chromium.org
Review URL: https://webrtc-codereview.appspot.com/2105004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4621 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-26 21:48:56 +00:00
sergeyu@chromium.org
9f282403f2
WindowCapturer implementation for Linux.
...
Window enumeration is based on the code used by hangouts plugin
(see libjingle/talk/base/linuxwindowpicker.cc). XServerPixelBuffer
is used to capture windows. It had to be refactored to support window
capturing (previously it worked only for the whole screen).
R=wez@chromium.org
Review URL: https://webrtc-codereview.appspot.com/1741004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4605 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-23 18:22:12 +00:00
sergeyu@chromium.org
eef29ec6cf
Implement window capturer for OS X.
...
R=wez@chromium.org
Review URL: https://webrtc-codereview.appspot.com/2055005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4599 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-23 00:39:46 +00:00
sergeyu@chromium.org
bf853f2732
Fix crash in screen capturer on Mac
...
BUG=crbug.com/247685
R=wez@chromium.org
Review URL: https://webrtc-codereview.appspot.com/2006004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4518 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-10 01:30:23 +00:00
pbos@webrtc.org
12dc1a38ca
Switch C++-style C headers with their C equivalents.
...
The C++ headers define the C functions within the std:: namespace, but
we mainly don't use the std:: namespace for C functions. Therefore we
should include the C headers.
BUG=1833
R=tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1917004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4486 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-05 16:22:53 +00:00
sergeyu@chromium.org
17758e96c5
Fix crash in DesktopRegion::Intersect().
...
BUG=crbug.com/266933
R=alexeypa@chromium.org
Review URL: https://webrtc-codereview.appspot.com/1938004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4468 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-08-01 19:51:04 +00:00
pbos@webrtc.org
e72428442d
Fix some chromium-style warnings in webrtc/modules/desktop_capture/
...
BUG=163
R=sergeyu@chromium.org
Review URL: https://webrtc-codereview.appspot.com/1904004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4446 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-31 15:32:43 +00:00
sergeyu@chromium.org
d102e66ef9
Fix ScreenCapturerLinux not to use XDamage when requested.
...
When moving this code to webrtc I added line "use_x_damage=true" for
debugging and forgot to remove it when landing this code, so the
capturer always tries to use XDamage.
BUG=crbug.com/263003
R=wez@chromium.org
Review URL: https://webrtc-codereview.appspot.com/1854004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4387 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-23 20:05:42 +00:00
pbos@webrtc.org
d900e8bea8
Proper spacing for end-of-namespace comments.
...
BUG=
R=mflodman@webrtc.org , tina.legrand@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1760006
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4293 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-07-03 15:12:26 +00:00
sergeyu@chromium.org
3348ae2b97
mac: Mark kCGLPFAFullScreen as allowed in a 10.6-only function.
...
kCGLPFAFullScreen is marked deprecated starting with 10.6 in the 10.9 SDK,
but it's functional on 10.6 and this code only runs on 10.6 and will go away
when support for 10.6 is dropped.
BUG=webrtc:1958
R=sergeyu@chromium.org
Review URL: https://webrtc-codereview.appspot.com/1710004
Patch from Nico Weber <thakis@chromium.org>.
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4255 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-21 23:33:10 +00:00
sergeyu@chromium.org
a20eb91154
Make ScreenCapturerMac work in versions of OSX before Lion.
...
The screen capturer was broken when moving code to webrtc: width
and height parameters for glReadPixels were swapped by mistkake.
BUG=crbug.com/244102
R=alexeypa@chromium.org
Review URL: https://webrtc-codereview.appspot.com/1678005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4239 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-17 22:22:40 +00:00
sergeyu@chromium.org
a590b41c9a
Use intptr_t to represent window IDs on all platforms.
...
Previously void* was used on windows which makes it harder to work
with the IDs in cross-platform code.
R=alexeypa@chromium.org
Review URL: https://webrtc-codereview.appspot.com/1672004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4237 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-17 20:02:21 +00:00
kjellander@webrtc.org
6c35e0b0f7
Reorganize test targets in WebRTC
...
This CL will lower the number of test targets in WebRTC by:
Add common_audio_unittests and merge the following targets into it (copied from http://review.webrtc.org/1584006 ):
* resampler_unittests
* signal_processing_unittests
* vad_unittests
Merge into modules_unittests:
* bitrate_controller_unittests
* desktop_capture_unittests
* media_file_unittests
* remote_bitrate_estimator_unittests
* rtp_rtcp_unittests
* paced_sender_unittests
Merge into test_support_unittests:
* channel_transport_unittests
channel_transport.gyp was also removed in favor for test.gyp.
I had to remove a main method from rtcp_format_remb_unittest.cc
since it caused the fileutils.h code to not be able to find the
right project root path in ordrer to provide correct paths
to test files.
Buildbot configuration update will be synced with the commit of this CL.
TEST=trybots
BUG=1843
R=andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1639004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4213 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-11 08:29:17 +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
7e4ff354e3
Remove fake screen capturer because it's not used anywhere.
...
R=alexeypa@chromium.org
Review URL: https://webrtc-codereview.appspot.com/1625004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4191 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-06 23:11:33 +00:00
sergeyu@chromium.org
d9c4658756
Fix leaks in DesktopRegion
...
BUG=crbug.com/246870
R=wez@chromium.org
Review URL: https://webrtc-codereview.appspot.com/1615004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4186 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-05 19:24:42 +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
sergeyu@chromium.org
3ee13e4ac2
Optimized DesktopRegion implementation.
...
Now DestktopRegion can merge overlapping rectangles.
R=wez@chromium.org
Review URL: https://webrtc-codereview.appspot.com/1526004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4161 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-06-04 00:38:39 +00:00
sergeyu@chromium.org
ead3c6d508
Fix bugs in DesktopRegion::IntersectWith() and DesktopRect::IntersectWith().
...
IntersectWith() didn't work correctly which breaks screen capturers in chromium.
BUG=crbug.com/243160
R=alexeypa@chromium.org , wez@chromium.org
Review URL: https://webrtc-codereview.appspot.com/1560004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4102 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-24 21:07:20 +00:00
sergeyu@chromium.org
6ec25073e3
Disable WindowCapturer tests on OSX and Linux
...
R=alexeypa@chromium.org
Review URL: https://webrtc-codereview.appspot.com/1533004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4085 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-22 18:47:07 +00:00
sergeyu@chromium.org
6ebfd346ae
Add direct_dependent_settings in common.gypi.
...
When building chromium targets that depend on webrtc, compiler settings must
have the include path to webrtc and webrtc-specific defines that the headers
may depend on. Added direct_dependent_settings in common.gyp, so that all
webrtc target propagate these settings to dependencies.
R=andrew@webrtc.org , tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1371005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4084 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-22 18:22:21 +00:00
sergeyu@chromium.org
b10ccbec02
Window capturer implementation for Windows.
...
R=alexeypa@chromium.org , andrew@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1477004
git-svn-id: http://webrtc.googlecode.com/svn/trunk@4064 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-05-19 07:02:48 +00:00
sergeyu@chromium.org
15e32ccd30
Add DesktopCapturer interface for desktop capturers.
...
The new DesktopCapturer interface will be used for screen and window
captures. Beside DesktopCapturer itself also added classes/interfaces
that it depends on.
R=alexeypa@chromium.org , tommi@webrtc.org
Review URL: https://webrtc-codereview.appspot.com/1322007
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3917 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-29 20:10:57 +00:00
sergeyu@chromium.org
a0cd9182aa
Add desktop_capture directory for screen and window capturers.
...
The screen captures will be moved from chromium to WebRTC to make it easy
to share this code with other projects. This CL adds a new directory where
the current screen capturer code will be moved to.
Review URL: https://webrtc-codereview.appspot.com/1297005
git-svn-id: http://webrtc.googlecode.com/svn/trunk@3866 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-04-17 18:21:42 +00:00