| Index: remoting/host/desktop_session_agent.cc
|
| diff --git a/remoting/host/desktop_session_agent.cc b/remoting/host/desktop_session_agent.cc
|
| index d8ac3e7ab2e7bd8b687e3356a4f23b2695ed1d8e..ed594d4dfcb94518d83776f26aba69916f1384fa 100644
|
| --- a/remoting/host/desktop_session_agent.cc
|
| +++ b/remoting/host/desktop_session_agent.cc
|
| @@ -158,13 +158,11 @@ DesktopSessionAgent::DesktopSessionAgent(
|
| scoped_refptr<AutoThreadTaskRunner> audio_capture_task_runner,
|
| scoped_refptr<AutoThreadTaskRunner> caller_task_runner,
|
| scoped_refptr<AutoThreadTaskRunner> input_task_runner,
|
| - scoped_refptr<AutoThreadTaskRunner> io_task_runner,
|
| - scoped_refptr<AutoThreadTaskRunner> video_capture_task_runner)
|
| + scoped_refptr<AutoThreadTaskRunner> io_task_runner)
|
| : audio_capture_task_runner_(audio_capture_task_runner),
|
| caller_task_runner_(caller_task_runner),
|
| input_task_runner_(input_task_runner),
|
| io_task_runner_(io_task_runner),
|
| - video_capture_task_runner_(video_capture_task_runner),
|
| weak_factory_(this) {
|
| DCHECK(caller_task_runner_->BelongsToCurrentThread());
|
| }
|
| @@ -315,14 +313,16 @@ void DesktopSessionAgent::OnStartSessionAgent(
|
|
|
| // Start the video capturer and mouse cursor monitor.
|
| video_capturer_ = desktop_environment_->CreateVideoCapturer();
|
| + video_capturer_->Start(this);
|
| + video_capturer_->SetSharedMemoryFactory(
|
| + rtc_make_scoped_ptr(new SharedMemoryFactoryImpl(
|
| + base::Bind(&DesktopSessionAgent::SendToNetwork, this))));
|
| mouse_cursor_monitor_ = desktop_environment_->CreateMouseCursorMonitor();
|
| - video_capture_task_runner_->PostTask(
|
| - FROM_HERE, base::Bind(
|
| - &DesktopSessionAgent::StartVideoCapturerAndMouseMonitor, this));
|
| + mouse_cursor_monitor_->Init(this, webrtc::MouseCursorMonitor::SHAPE_ONLY);
|
| }
|
|
|
| void DesktopSessionAgent::OnCaptureCompleted(webrtc::DesktopFrame* frame) {
|
| - DCHECK(video_capture_task_runner_->BelongsToCurrentThread());
|
| + DCHECK(caller_task_runner_->BelongsToCurrentThread());
|
|
|
| last_frame_.reset(frame);
|
|
|
| @@ -345,7 +345,7 @@ void DesktopSessionAgent::OnCaptureCompleted(webrtc::DesktopFrame* frame) {
|
| }
|
|
|
| void DesktopSessionAgent::OnMouseCursor(webrtc::MouseCursor* cursor) {
|
| - DCHECK(video_capture_task_runner_->BelongsToCurrentThread());
|
| + DCHECK(caller_task_runner_->BelongsToCurrentThread());
|
|
|
| scoped_ptr<webrtc::MouseCursor> owned_cursor(cursor);
|
|
|
| @@ -440,19 +440,14 @@ void DesktopSessionAgent::Stop() {
|
| FROM_HERE, base::Bind(&DesktopSessionAgent::StopAudioCapturer, this));
|
|
|
| // Stop the video capturer.
|
| - video_capture_task_runner_->PostTask(
|
| - FROM_HERE, base::Bind(
|
| - &DesktopSessionAgent::StopVideoCapturerAndMouseMonitor, this));
|
| + video_capturer_.reset();
|
| + last_frame_.reset();
|
| + mouse_cursor_monitor_.reset();
|
| }
|
| }
|
|
|
| void DesktopSessionAgent::OnCaptureFrame() {
|
| - if (!video_capture_task_runner_->BelongsToCurrentThread()) {
|
| - video_capture_task_runner_->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&DesktopSessionAgent::OnCaptureFrame, this));
|
| - return;
|
| - }
|
| + DCHECK(caller_task_runner_->BelongsToCurrentThread());
|
|
|
| mouse_cursor_monitor_->Capture();
|
|
|
| @@ -583,27 +578,4 @@ void DesktopSessionAgent::StopAudioCapturer() {
|
| audio_capturer_.reset();
|
| }
|
|
|
| -void DesktopSessionAgent::StartVideoCapturerAndMouseMonitor() {
|
| - DCHECK(video_capture_task_runner_->BelongsToCurrentThread());
|
| -
|
| - if (video_capturer_) {
|
| - video_capturer_->Start(this);
|
| - video_capturer_->SetSharedMemoryFactory(
|
| - rtc_make_scoped_ptr(new SharedMemoryFactoryImpl(
|
| - base::Bind(&DesktopSessionAgent::SendToNetwork, this))));
|
| - }
|
| -
|
| - if (mouse_cursor_monitor_) {
|
| - mouse_cursor_monitor_->Init(this, webrtc::MouseCursorMonitor::SHAPE_ONLY);
|
| - }
|
| -}
|
| -
|
| -void DesktopSessionAgent::StopVideoCapturerAndMouseMonitor() {
|
| - DCHECK(video_capture_task_runner_->BelongsToCurrentThread());
|
| -
|
| - video_capturer_.reset();
|
| - last_frame_.reset();
|
| - mouse_cursor_monitor_.reset();
|
| -}
|
| -
|
| } // namespace remoting
|
|
|