summaryrefslogtreecommitdiffstats
path: root/remoting/host/video_scheduler.h
Commit message (Collapse)AuthorAgeFilesLines
* Switch DesktopEnvironment to return a DesktopCapturer.wez@chromium.org2014-08-121-5/+5
| | | | | | | | | This removes the need for a lot of additional boilerplate in proxying capturer implementations, and makes it possible to implement DesktopEnvironment using any kind of DesktopCapturer, e.g. ScreenCapturer or WindowCapturer, for example. Review URL: https://codereview.chromium.org/455073004 Cr-Commit-Position: refs/heads/master@{#289020} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@289020 0039d316-1c4b-4281-b951-d872f2087c98
* Use webrtc::MouseCursorMonitor for cursor shapesdcaiafa@chromium.org2014-08-081-4/+12
| | | | | | | | | | | | | | | | | | | | | Use webrtc::MouseCursorMonitor for cursor shapes instead of webrtc::VideoFrameCapturer, in preparation for deprecating cursor shape functionality in the latter. Fix memory corruption in VideoSchedulerTests_StartAndStop, where a lingering capture task could trigger a expectation action declared on the stack during tear down. My changes to the test somehow made the race condition more likely. BUG=324033 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=247689 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=248045 Review URL: https://codereview.chromium.org/92473002 Cr-Commit-Position: refs/heads/master@{#288226} git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288226 0039d316-1c4b-4281-b951-d872f2087c98
* Add basic perf tests for chromoting protocol.sergeyu@chromium.org2014-07-251-1/+5
| | | | | | | | | | | | | | This CL doesn't yet include any emulation of network characteristics (latency, bandwidth, etc.). I'm going to implement it in a separate CL. BUG=394067 R=rmsousa@chromium.org, ttuttle@chromium.org TBR=ttuttle@chromium.org (DEPS on net in remoting/test) Review URL: https://codereview.chromium.org/394883008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@285429 0039d316-1c4b-4281-b951-d872f2087c98
* Extend VideoControl to allow clients to request lossless modes.wez@chromium.org2014-05-301-1/+6
| | | | | | | | | | | | - Lossless encode/color requests may be ignored by codecs. - VideoEncoderVpx supports lossless color when using VP9. - The --enable-i444 flag now controls the default color mode for VP9. BUG=260879,134202 Review URL: https://codereview.chromium.org/304653002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@273752 0039d316-1c4b-4281-b951-d872f2087c98
* More reliable keep-alive video packets.sergeyu@chromium.org2014-05-261-1/+11
| | | | | | | | | | | | | | | Previously the host was not sending empty keep alive messages when video stream is paused or when it's blocked on the encoder, this triggers reconnect too often. Refactored keep-alive logic in VideoScheduler so now it always sends keep-alive messages when there is no other activity on the stream. BUG=376528,375568 Review URL: https://codereview.chromium.org/292373002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272790 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 248045 "Use webrtc::MouseCursorMonitor for cursor shapes"benwells@chromium.org2014-01-311-12/+4
| | | | | | | | | | | | | | | | | | | | | > Use webrtc::MouseCursorMonitor for cursor shapes > > Use webrtc::MouseCursorMonitor for cursor shapes instead of > webrtc::VideoFrameCapturer, in preparation for deprecating cursor shape > functionality in the latter. > > BUG=324033 > > Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=247689 > > Review URL: https://codereview.chromium.org/92473002 This caused errors on a windows memory bot. See bug for details. TBR=dcaiafa@chromium.org Review URL: https://codereview.chromium.org/151163002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248139 0039d316-1c4b-4281-b951-d872f2087c98
* Use webrtc::MouseCursorMonitor for cursor shapesdcaiafa@chromium.org2014-01-301-4/+12
| | | | | | | | | | | | | | Use webrtc::MouseCursorMonitor for cursor shapes instead of webrtc::VideoFrameCapturer, in preparation for deprecating cursor shape functionality in the latter. BUG=324033 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=247689 Review URL: https://codereview.chromium.org/92473002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248045 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 247689 "Use webrtc::MouseCursorMonitor for cursor shapes"gavinp@chromium.org2014-01-291-12/+4
| | | | | | | | | | | | | | | | | | > Use webrtc::MouseCursorMonitor for cursor shapes > > Use webrtc::MouseCursorMonitor for cursor shapes instead of > webrtc::VideoFrameCapturer, in preparation for deprecating cursor shape > functionality in the latter. > > BUG=324033 > > Review URL: https://codereview.chromium.org/92473002 TBR=dcaiafa@chromium.org Review URL: https://codereview.chromium.org/149563003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247691 0039d316-1c4b-4281-b951-d872f2087c98
* Use webrtc::MouseCursorMonitor for cursor shapesdcaiafa@chromium.org2014-01-291-4/+12
| | | | | | | | | | | | Use webrtc::MouseCursorMonitor for cursor shapes instead of webrtc::VideoFrameCapturer, in preparation for deprecating cursor shape functionality in the latter. BUG=324033 Review URL: https://codereview.chromium.org/92473002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@247689 0039d316-1c4b-4281-b951-d872f2087c98
* Remove dependency on skia from remotingsergeyu@chromium.org2013-12-161-1/+0
| | | | | | | | | | | | | | Remoting uses types in webrtc/modules/desktop_capture to represent rectangles, vectors and regions. This CL removes a few places left where we were still using Skia types and removes Skia from DEPS. Also removed leftover InvalidateRegion() declaration from desktop_session_proxy.h . R=jamiewalch@chromium.org Review URL: https://codereview.chromium.org/112453002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240925 0039d316-1c4b-4281-b951-d872f2087c98
* Use a direct include of time headers in ppapi/, printing/, remoting/.avi@chromium.org2013-06-281-2/+2
| | | | | | | | | | BUG=254986 TEST=none TBR=ben@chromium.org Review URL: https://codereview.chromium.org/18052008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209151 0039d316-1c4b-4281-b951-d872f2087c98
* Fix VideoScheduler to set client_sequence_number in video packets.sergeyu@chromium.org2013-06-081-2/+2
| | | | | | | | | | | Not setting client_sequence_number breaks latency calculation. Previously the scheduler was setting sequence_number filed instead. BUG=247863 Review URL: https://chromiumcodereview.appspot.com/15994021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@205089 0039d316-1c4b-4281-b951-d872f2087c98
* Remove screen capturers from media/video/capture/screen.sergeyu@chromium.org2013-06-071-9/+10
| | | | | | | | | | | | Screen capturers have been moved to webrtc. This change switches chromoting and getUserMedia() to the new copy of the capturers in webrtc and removes old copy from media. TBR=jschuh@chromium.org Review URL: https://chromiumcodereview.appspot.com/15692018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204966 0039d316-1c4b-4281-b951-d872f2087c98
* Use webrtc::DesktopCapturer for screen capturer implementation.sergeyu@chromium.org2013-05-161-15/+19
| | | | | | | | | | | | | Screen capturers are being moved from media/video/capture/screen to third_party/webrtc. This CL is an intermediate step in that process. Depends on https://webrtc-codereview.appspot.com/1322007/ TBR=brettw@chromium.org (third_party/webrtc dependency) Review URL: https://chromiumcodereview.appspot.com/13983010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@200504 0039d316-1c4b-4281-b951-d872f2087c98
* Create the desktop environment before any of the channel were connected.alexeypa@chromium.org2013-05-011-10/+4
| | | | | | | | | | | | | | ClientSession now creates the desktop environment and the corresponding video scheduler, event executor, etc. before any of the channel were created but after the connection has been authenticated and allowed by the host. This arrangement has two benefits: - Messages arriving before all channels are ready could be successfully processed instead of being ignored. - Desktop session can be created in parallel with channel creation reducing the overall connection time. This CL also splits initialization of the audio and video schedulers in two phases. The schedulers created and prepared to handle incoming messages once the connection has been authenticated. Then, ClientSession starts them (so they can start sending messages to the client) once all channels have been set up. BUG= Review URL: https://chromiumcodereview.appspot.com/14520018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@197689 0039d316-1c4b-4281-b951-d872f2087c98
* Simplify ScreenCapturer interface.sergeyu@chromium.org2013-04-231-4/+0
| | | | | | | | Removed Stop() and InvalidateRegion() from ScreenCapturer interface. Review URL: https://codereview.chromium.org/14305004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@195887 0039d316-1c4b-4281-b951-d872f2087c98
* Move screen capturers from remoting/capturer to media/video/capturer/screensergeyu@chromium.org2013-01-281-14/+17
| | | | | | | | | | | | | | | | Screen capturers will be used in content, and so they have to be moved to avoid dependency on remoting/capturer in content. Beside moving the files this CL also renames classes as follows: remoting::VideoFrameCapturer -> media::ScreenCapturer remoting::VideoFrame -> media::ScreenCaptureFrame remoting::CaptureData -> media::ScreenCaptureData BUG=134249 Review URL: https://codereview.chromium.org/12047101 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179218 0039d316-1c4b-4281-b951-d872f2087c98
* Making DesktopEnvironment a factory class used by ClientSession to create ↵alexeypa@chromium.org2013-01-161-12/+14
| | | | | | | | | | | | | | | | | audio/video capturers and event executor for a pacticular desktop environment. Other related changes: - AudioCapturer and VideoFrameCapturer are owned by AudioScheduler and VideoScheduler correspondingly. - Both AudioScheduler and VideoScheduler can now be stopped completely asynchronously. - AudioScheduler::SetEnabled() changed to Pause() to match the corresponding method provided by VideoScheduler. - ClientSession::Stop() is synchronous now. BUG=104544 Review URL: https://chromiumcodereview.appspot.com/11778049 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177161 0039d316-1c4b-4281-b951-d872f2087c98
* Use more specific protocol::CursorShapeStub instead of protocol::ClientStub ↵alexeypa@chromium.org2012-12-281-4/+4
| | | | | | | | in VideoScheduler. Review URL: https://chromiumcodereview.appspot.com/11646010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174745 0039d316-1c4b-4281-b951-d872f2087c98
* Move screen capturers to remoting/capturer.sergeyu@chromium.org2012-12-181-2/+3
| | | | | | | | | | | | Separating screen capturer code from the rest of remoting code so that it can be reused for screen capturing in WebRTC. Also added struct MouseCursorShape to avoid protobuf dependency. BUG=134249 Review URL: https://codereview.chromium.org/11470028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173789 0039d316-1c4b-4281-b951-d872f2087c98
* Wait for encode thread during VideoScheduler teardown.wez@chromium.org2012-12-111-0/+4
| | | | | | | | | | | | | VideoFrameCapturer currently owns the buffers underlying CaptureData instances, so VideoScheduler::Stop() mustn't notify completion until it is done accessing them. BUG=163641 Review URL: https://chromiumcodereview.appspot.com/11474043 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@172280 0039d316-1c4b-4281-b951-d872f2087c98
* Fix AudioScheduler and VideoScheduler creation.wez@chromium.org2012-12-081-1/+10
| | | | | | | | | | | | | The schedulers post startup tasks to a secondary thread, running the risk that the secondary thread will them down before the caller has had a chance to take a reference to them. BUG=164795 Review URL: https://chromiumcodereview.appspot.com/11474015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171925 0039d316-1c4b-4281-b951-d872f2087c98
* Capturing and encoding time are now calculated by the thread doing the ↵alexeypa@chromium.org2012-11-281-6/+0
| | | | | | | | operation. This gives more accurate result in the case when multiple frames are scheduled for capturing/encoding simultaneously. The side effect is that the thread scheduling delays are not accounted for any more. Review URL: https://chromiumcodereview.appspot.com/11280068 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170045 0039d316-1c4b-4281-b951-d872f2087c98
* DesktopSessionAgent now hosts the video capturer and provides necessary ↵alexeypa@chromium.org2012-11-271-1/+1
| | | | | | | | | | | plumbing to drive it via an IPC channel. BUG=134694 Review URL: https://chromiumcodereview.appspot.com/11413022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169587 0039d316-1c4b-4281-b951-d872f2087c98
* Adding support of shared memory buffers to the video capturer (Windows only).alexeypa@chromium.org2012-11-201-1/+1
| | | | | | | | | | | | | Changes in this CL: - The video capturer allocates frame buffers in shared memory and registers them with the provided delegate. The delegate is expected to pass information about the buffers to the process consuming the buffers. - A reference to a shared buffer is passed along with CaptureData. BUG=134694 Review URL: https://chromiumcodereview.appspot.com/11416021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@168862 0039d316-1c4b-4281-b951-d872f2087c98
* Converted VideoFrameCapturer callbacks into a VideoFrameCapturer::Delegate ↵alexeypa@chromium.org2012-11-081-8/+9
| | | | | | | | | | | interface. BUG=134694 Review URL: https://chromiumcodereview.appspot.com/11363128 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166728 0039d316-1c4b-4281-b951-d872f2087c98
* Pause/resume the VideoScheduler in response to messages from the client.wez@chromium.org2012-10-271-1/+8
| | | | | | | | | | BUG=107285 TEST=Manually verify that Chromoting video channel throughput drops to zero if the client's window is switched to a different tab while a video is playing at the host. Review URL: https://chromiumcodereview.appspot.com/11265032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164467 0039d316-1c4b-4281-b951-d872f2087c98
* Clean up remoting::VideoScheduler implementation: wez@chromium.org2012-10-261-84/+59
| | | | | | | | | | | | | | | | - Reduce thread-switching in VideoScheduler::Stop(). - Simplify VideoScheduler API and clean up implementation. - Tidy up ClientSessionTest test base. - Rename SessionConfig::GetDefault() to ForTest(). This was originally reviewed as crrev.com/11229023. BUG=104543 Review URL: https://chromiumcodereview.appspot.com/11273051 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164409 0039d316-1c4b-4281-b951-d872f2087c98
* Rename ScreenRecorder to VideoScheduler.wez@chromium.org2012-10-261-0/+211
BUG=104543 Review URL: https://chromiumcodereview.appspot.com/11229023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164282 0039d316-1c4b-4281-b951-d872f2087c98