| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "remoting/host/screen_recorder.h" | 5 #include "remoting/host/screen_recorder.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 | 30 |
| 31 // Maximum number of frames that can be processed similtaneously. | 31 // Maximum number of frames that can be processed similtaneously. |
| 32 // TODO(hclam): Move this value to CaptureScheduler. | 32 // TODO(hclam): Move this value to CaptureScheduler. |
| 33 static const int kMaxRecordings = 2; | 33 static const int kMaxRecordings = 2; |
| 34 | 34 |
| 35 ScreenRecorder::ScreenRecorder( | 35 ScreenRecorder::ScreenRecorder( |
| 36 scoped_refptr<base::SingleThreadTaskRunner> capture_task_runner, | 36 scoped_refptr<base::SingleThreadTaskRunner> capture_task_runner, |
| 37 scoped_refptr<base::SingleThreadTaskRunner> encode_task_runner, | 37 scoped_refptr<base::SingleThreadTaskRunner> encode_task_runner, |
| 38 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner, | 38 scoped_refptr<base::SingleThreadTaskRunner> network_task_runner, |
| 39 VideoFrameCapturer* capturer, | 39 VideoFrameCapturer* capturer, |
| 40 Encoder* encoder) | 40 VideoEncoder* encoder) |
| 41 : capture_task_runner_(capture_task_runner), | 41 : capture_task_runner_(capture_task_runner), |
| 42 encode_task_runner_(encode_task_runner), | 42 encode_task_runner_(encode_task_runner), |
| 43 network_task_runner_(network_task_runner), | 43 network_task_runner_(network_task_runner), |
| 44 capturer_(capturer), | 44 capturer_(capturer), |
| 45 encoder_(encoder), | 45 encoder_(encoder), |
| 46 network_stopped_(false), | 46 network_stopped_(false), |
| 47 encoder_stopped_(false), | 47 encoder_stopped_(false), |
| 48 max_recordings_(kMaxRecordings), | 48 max_recordings_(kMaxRecordings), |
| 49 recordings_(0), | 49 recordings_(0), |
| 50 frame_skipped_(false), | 50 frame_skipped_(false), |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 116 | 116 |
| 117 ScreenRecorder::~ScreenRecorder() { | 117 ScreenRecorder::~ScreenRecorder() { |
| 118 } | 118 } |
| 119 | 119 |
| 120 VideoFrameCapturer* ScreenRecorder::capturer() { | 120 VideoFrameCapturer* ScreenRecorder::capturer() { |
| 121 DCHECK(capture_task_runner_->BelongsToCurrentThread()); | 121 DCHECK(capture_task_runner_->BelongsToCurrentThread()); |
| 122 DCHECK(capturer_); | 122 DCHECK(capturer_); |
| 123 return capturer_; | 123 return capturer_; |
| 124 } | 124 } |
| 125 | 125 |
| 126 Encoder* ScreenRecorder::encoder() { | 126 VideoEncoder* ScreenRecorder::encoder() { |
| 127 DCHECK(encode_task_runner_->BelongsToCurrentThread()); | 127 DCHECK(encode_task_runner_->BelongsToCurrentThread()); |
| 128 DCHECK(encoder_.get()); | 128 DCHECK(encoder_.get()); |
| 129 return encoder_.get(); | 129 return encoder_.get(); |
| 130 } | 130 } |
| 131 | 131 |
| 132 bool ScreenRecorder::is_recording() { | 132 bool ScreenRecorder::is_recording() { |
| 133 DCHECK(capture_task_runner_->BelongsToCurrentThread()); | 133 DCHECK(capture_task_runner_->BelongsToCurrentThread()); |
| 134 return capture_timer_.get() != NULL; | 134 return capture_timer_.get() != NULL; |
| 135 } | 135 } |
| 136 | 136 |
| (...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 364 packet->set_encode_time_ms(encode_time_ms); | 364 packet->set_encode_time_ms(encode_time_ms); |
| 365 scheduler_.RecordEncodeTime(encode_time); | 365 scheduler_.RecordEncodeTime(encode_time); |
| 366 } | 366 } |
| 367 | 367 |
| 368 network_task_runner_->PostTask( | 368 network_task_runner_->PostTask( |
| 369 FROM_HERE, base::Bind(&ScreenRecorder::DoSendVideoPacket, this, | 369 FROM_HERE, base::Bind(&ScreenRecorder::DoSendVideoPacket, this, |
| 370 base::Passed(packet.Pass()))); | 370 base::Passed(packet.Pass()))); |
| 371 } | 371 } |
| 372 | 372 |
| 373 } // namespace remoting | 373 } // namespace remoting |
| OLD | NEW |