Commit Graph

17 Commits

Author SHA1 Message Date
cd66a771ed Create new constructors and fields to support a better mouse cursor monitor
Current implementation requires MouseCursorMonitor to understand the SourceId of
a DesktopCapturer implementation. But SourceId has different meanings across
various DesktopCapturer implementations. So this change decouples the
MouseCursorMonitor from DesktopCapturer, i.e. it does not need to know
DesktopCapturer anymore, instead it always returns the absolute position of the
mouse cursor. In DesktopAndCursorComposer, it can use the newly added
DesktopFrame::top_left() to decide the relative position of mouse cursor and the
DesktopFrame.

Bug: webrtc:7950
Change-Id: Idfbde5cb0f79ff0acf4ad1e9a0ac5126f1bb2e98
Reviewed-on: https://chromium-review.googlesource.com/575315
Commit-Queue: Zijie He <zijiehe@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19115}
2017-07-21 22:13:35 +00:00
c20978e581 Rename webrtc/base -> webrtc/rtc_base
NOPRESUBMIT=True # cpplint errors that aren't caused by this CL.
NOTRY=True
NOTREECHECKS=True
TBR=kwiberg@webrtc.org, kjellander@webrtc.org

Bug: webrtc:7634
Change-Id: I3cca0fbaa807b563c95979cccd6d1bec32055f36
Reviewed-on: https://chromium-review.googlesource.com/562156
Commit-Queue: Edward Lemur <ehmaldonado@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#18919}
2017-07-06 19:11:40 +00:00
dca1e09db7 Revert "Update includes for webrtc/{base => rtc_base} rename (1/3)"
This reverts commit c8fa692ec44fd6ba4fa3d085ac3161a262fc18c5.

BUG=webrtc:7634
NOTRY=True
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2964773002 .
Cr-Commit-Position: refs/heads/master@{#18872}
2017-07-01 14:42:25 +00:00
c8fa692ec4 Update includes for webrtc/{base => rtc_base} rename (1/3)
I used a command like this to update the paths:
perl -pi -e "s/webrtc\/base/webrtc\/rtc_base/g" `find webrtc/rtc_base -name "*.cc" -o -name "*.h"`

The only manual edit is to add an include of webrtc/rtc_base/checks.h in
webrtc/modules/audio_device/android/opensles_common.h, which likely
was needed due to changed include paths due to 'git cl format'.

BUG=webrtc:7634
NOTRY=True
NOPRESUBMIT=True

Review-Url: https://codereview.webrtc.org/2969653002
Cr-Commit-Position: refs/heads/master@{#18871}
2017-06-30 21:02:00 +00:00
4032674349 Forward capturer_id between DesktopFrame and its implementations
This is a trivial change to forward capturer id from various DesktopFrame
related implementations.

BUG=chromium:679523, chromium:650926

Review-Url: https://codereview.webrtc.org/2851513003
Cr-Commit-Position: refs/heads/master@{#17918}
2017-04-28 01:39:01 +00:00
88ac827877 Add DesktopCapturerId and attach it to DesktopFrame
This change adds a DesktopCapturerId namespace, and attaches an int to each
DesktopFrame. ScreenCapturerWinGdi and ScreenCapturerWinDirectx now actively set
this field to differentiate themselves.

BUG=679523, 650926

Review-Url: https://codereview.webrtc.org/2759493002
Cr-Original-Commit-Position: refs/heads/master@{#17329}
Committed: 41e3d9ff3b
Review-Url: https://codereview.webrtc.org/2759493002
Cr-Commit-Position: refs/heads/master@{#17347}
2017-03-22 18:38:46 +00:00
060987699b Revert of Add DesktopCapturerId and attach it to DesktopFrame (patchset #4 id:100002 of https://codereview.webrtc.org/2759493002/ )
Reason for revert:
I suspect that this CL breaks Chromium WebRTC FYI bots. (Thanks kjellander@ for spotting.) The added dep in BUILD.gn would be the problem.

Example:

https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Fchromium.webrtc.fyi%2FLinux_Builder%2F15058%2F%2B%2Frecipes%2Fsteps%2Fcompile%2F0%2Fstdout

FAILED: newlib_pnacl/obj/third_party/webrtc/api/libjingle_peerconnection_api/mediaconstraintsinterface.o
/b/c/goma_client/gomacc ../../native_client/toolchain/linux_x86/pnacl_newlib/bin/pnacl-clang++ -MMD -MF newlib_pnacl/obj/third_party/webrtc/api/libjingle_peerconnection_api/mediaconstraintsinterface.o.d -DNACL_TC_REV=5dfe030a71ca66e72c5719ef5034c2ed24706c43 -DV8_DEPRECATION_WARNINGS -DUSE_OPENSSL_CERTS=1 -DNO_TCMALLOC -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DFIELDTRIAL_TESTING_ENABLED -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D_FORTIFY_SOURCE=2 -DNDEBUG -DNVALGRIND -DWEBRTC_RESTRICT_LOGGING -DEXPAT_RELATIVE_PATH -DHAVE_SCTP -DENABLE_EXTERNAL_AUTH -DHAVE_WEBRTC_VIDEO -DHAVE_WEBRTC_VOICE -DLOGGING_INSIDE_WEBRTC -DUSE_WEBRTC_DEV_BRANCH -DFEATURE_ENABLE_VOICEMAIL -DEXPAT_RELATIVE_PATH -DGTEST_RELATIVE_PATH -DNO_MAIN_THREAD_WRAPPING -DNO_SOUND_SYSTEM -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -I../.. -Inewlib_pnacl/gen -I../../third_party/webrtc_overrides -I../../third_party -fno-strict-aliasing -Wno-builtin-macro-redefined -D__DATE__= -D__TIME__= -D__TIMESTAMP__= -fcolor-diagnostics -Wall -Werror -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-covered-switch-default -Wno-deprecated-register -Wno-unneeded-internal-declaration -Wno-inconsistent-missing-override -O2 -fno-ident -fdata-sections -ffunction-sections -g0 -fvisibility=hidden -fvisibility-inlines-hidden -std=gnu++11 -fno-rtti -fno-exceptions -c ../../third_party/webrtc/api/mediaconstraintsinterface.cc -o newlib_pnacl/obj/third_party/webrtc/api/libjingle_peerconnection_api/mediaconstraintsinterface.o
In file included from ../../third_party/webrtc/api/mediaconstraintsinterface.cc:11:
In file included from ../../third_party/webrtc/api/mediaconstraintsinterface.h:27:
In file included from ../../third_party/webrtc/api/peerconnectioninterface.h:77:
In file included from ../../third_party/webrtc/api/dtmfsenderinterface.h:16:
In file included from ../../third_party/webrtc/api/mediastreaminterface.h:33:
In file included from ../../third_party/webrtc/media/base/mediachannel.h:28:
../../third_party/webrtc/base/socket.h:18:10: fatal error: 'sys/socket.h' file not found
#include <sys/socket.h>
         ^
1 error generated.

Original issue's description:
> Add DesktopCapturerId and attach it to DesktopFrame
>
> This change adds a DesktopCapturerId namespace, and attaches an int to each
> DesktopFrame. ScreenCapturerWinGdi and ScreenCapturerWinDirectx now actively set
> this field to differentiate themselves.
>
> BUG=679523, 650926
>
> Review-Url: https://codereview.webrtc.org/2759493002
> Cr-Commit-Position: refs/heads/master@{#17329}
> Committed: 41e3d9ff3b

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=679523, 650926

Review-Url: https://codereview.webrtc.org/2767003002
Cr-Commit-Position: refs/heads/master@{#17336}
2017-03-22 08:13:39 +00:00
41e3d9ff3b Add DesktopCapturerId and attach it to DesktopFrame
This change adds a DesktopCapturerId namespace, and attaches an int to each
DesktopFrame. ScreenCapturerWinGdi and ScreenCapturerWinDirectx now actively set
this field to differentiate themselves.

BUG=679523, 650926

Review-Url: https://codereview.webrtc.org/2759493002
Cr-Commit-Position: refs/heads/master@{#17329}
2017-03-21 19:41:18 +00:00
6f79d840ba Bug Fix: Mac Retina Screen Capture's Mouse Cursor Too Small
On retina display, when we do screen capture, the mouse cursor
looks too small. The reason is that we painted the cursor with
low resolution on to the frame directly.

This CL fixes the bug.

BUG=632995

Review-Url: https://codereview.webrtc.org/2350743003
Cr-Commit-Position: refs/heads/master@{#14340}
2016-09-21 23:45:03 +00:00
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
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
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
cc9669c6b8 Cleanup shared memory handling in DesktopCapturer interface.
Previously shared memory buffers for DesktopCapturer were created
using DesktopCapturer::Callback::CreateSharedBuffer(). That made it
difficult to proxy DesktopCapturer interface from one thread to another.
This CL adds SharedBufferFactory interface that's allowed to be called
on a background thread. This also simplifies clients that don't
need to use shared memory, as they no longer need to override
CreateSharedBuffer().

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

Cr-Commit-Position: refs/heads/master@{#11543}
2016-02-09 23:13:32 +00:00
0e71070207 Use ScreenCapturer to capture the whole and clip to the window rect when the shared window is on the top.
BUG=crbug/403703, crbug/316603
R=wez@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@7684 4adac7df-926f-26a2-2b94-8c16560cd09d
2014-11-11 18:15:55 +00:00
5d85819dd2 Fix DesktopAndCursorComposer to restore frames to the original state.
Screen capturers may reuse frame buffers and they expect that the
frame content isn't changed by the frame consumer.
DesktopAndCursorComposer draws mouse cursor on generated frames and
it was releasing the frames with the mouse cursor on them. Fixed
it to restore frame content erasing mouse cursor before returning
desktop frames.

BUG=crbug.com/316297
R=wez@chromium.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@5133 4adac7df-926f-26a2-2b94-8c16560cd09d
2013-11-19 02:15:47 +00:00
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
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