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 // Notes about usage of this object by VideoCaptureImplManager. | 5 // Notes about usage of this object by VideoCaptureImplManager. |
6 // | 6 // |
7 // VideoCaptureImplManager access this object by using a Unretained() | 7 // VideoCaptureImplManager access this object by using a Unretained() |
8 // binding and tasks on the IO thread. It is then important that | 8 // binding and tasks on the IO thread. It is then important that |
9 // VideoCaptureImpl never post task to itself. All operations must be | 9 // VideoCaptureImpl never post task to itself. All operations must be |
10 // synchronous. | 10 // synchronous. |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 if (state_ == VIDEO_CAPTURE_STATE_STARTED) | 127 if (state_ == VIDEO_CAPTURE_STATE_STARTED) |
128 GetVideoCaptureHost()->Stop(device_id_); | 128 GetVideoCaptureHost()->Stop(device_id_); |
129 message_filter_->RemoveDelegate(this); | 129 message_filter_->RemoveDelegate(this); |
130 } | 130 } |
131 | 131 |
132 void VideoCaptureImpl::SuspendCapture(bool suspend) { | 132 void VideoCaptureImpl::SuspendCapture(bool suspend) { |
133 DCHECK(io_task_runner_->BelongsToCurrentThread()); | 133 DCHECK(io_task_runner_->BelongsToCurrentThread()); |
134 if (suspend) | 134 if (suspend) |
135 GetVideoCaptureHost()->Pause(device_id_); | 135 GetVideoCaptureHost()->Pause(device_id_); |
136 else | 136 else |
137 Send(new VideoCaptureHostMsg_Resume(device_id_, session_id_, params_)); | 137 GetVideoCaptureHost()->Resume(device_id_, session_id_, params_); |
138 } | 138 } |
139 | 139 |
140 void VideoCaptureImpl::StartCapture( | 140 void VideoCaptureImpl::StartCapture( |
141 int client_id, | 141 int client_id, |
142 const media::VideoCaptureParams& params, | 142 const media::VideoCaptureParams& params, |
143 const VideoCaptureStateUpdateCB& state_update_cb, | 143 const VideoCaptureStateUpdateCB& state_update_cb, |
144 const VideoCaptureDeliverFrameCB& deliver_frame_cb) { | 144 const VideoCaptureDeliverFrameCB& deliver_frame_cb) { |
145 DCHECK(io_task_runner_->BelongsToCurrentThread()); | 145 DCHECK(io_task_runner_->BelongsToCurrentThread()); |
146 ClientInfo client_info; | 146 ClientInfo client_info; |
147 client_info.params = params; | 147 client_info.params = params; |
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
525 params_.requested_format.frame_size.SetSize(width, height); | 525 params_.requested_format.frame_size.SetSize(width, height); |
526 DVLOG(1) << "RestartCapture, " | 526 DVLOG(1) << "RestartCapture, " |
527 << params_.requested_format.frame_size.ToString(); | 527 << params_.requested_format.frame_size.ToString(); |
528 StartCaptureInternal(); | 528 StartCaptureInternal(); |
529 } | 529 } |
530 | 530 |
531 void VideoCaptureImpl::StartCaptureInternal() { | 531 void VideoCaptureImpl::StartCaptureInternal() { |
532 DCHECK(io_task_runner_->BelongsToCurrentThread()); | 532 DCHECK(io_task_runner_->BelongsToCurrentThread()); |
533 DCHECK(device_id_); | 533 DCHECK(device_id_); |
534 | 534 |
535 Send(new VideoCaptureHostMsg_Start(device_id_, session_id_, params_)); | 535 GetVideoCaptureHost()->Start(device_id_, session_id_, params_); |
536 state_ = VIDEO_CAPTURE_STATE_STARTED; | 536 state_ = VIDEO_CAPTURE_STATE_STARTED; |
537 } | 537 } |
538 | 538 |
539 void VideoCaptureImpl::Send(IPC::Message* message) { | 539 void VideoCaptureImpl::Send(IPC::Message* message) { |
540 DCHECK(io_task_runner_->BelongsToCurrentThread()); | 540 DCHECK(io_task_runner_->BelongsToCurrentThread()); |
541 message_filter_->Send(message); | 541 message_filter_->Send(message); |
542 } | 542 } |
543 | 543 |
544 bool VideoCaptureImpl::RemoveClient(int client_id, ClientInfoMap* clients) { | 544 bool VideoCaptureImpl::RemoveClient(int client_id, ClientInfoMap* clients) { |
545 DCHECK(io_task_runner_->BelongsToCurrentThread()); | 545 DCHECK(io_task_runner_->BelongsToCurrentThread()); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
578 double consumer_resource_utilization = -1.0; | 578 double consumer_resource_utilization = -1.0; |
579 if (!metadata->GetDouble(media::VideoFrameMetadata::RESOURCE_UTILIZATION, | 579 if (!metadata->GetDouble(media::VideoFrameMetadata::RESOURCE_UTILIZATION, |
580 &consumer_resource_utilization)) { | 580 &consumer_resource_utilization)) { |
581 consumer_resource_utilization = -1.0; | 581 consumer_resource_utilization = -1.0; |
582 } | 582 } |
583 | 583 |
584 callback_to_io_thread.Run(*release_sync_token, consumer_resource_utilization); | 584 callback_to_io_thread.Run(*release_sync_token, consumer_resource_utilization); |
585 } | 585 } |
586 | 586 |
587 } // namespace content | 587 } // namespace content |
OLD | NEW |