| 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 "content/renderer/media/video_capture_impl.h" | 5 #include "content/renderer/media/video_capture_impl.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/stl_util.h" | 8 #include "base/stl_util.h" |
| 9 #include "content/child/child_process.h" | 9 #include "content/child/child_process.h" |
| 10 #include "content/common/media/video_capture_messages.h" | 10 #include "content/common/media/video_capture_messages.h" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 48 | 48 |
| 49 VideoCaptureImpl::VideoCaptureImpl( | 49 VideoCaptureImpl::VideoCaptureImpl( |
| 50 const media::VideoCaptureSessionId id, | 50 const media::VideoCaptureSessionId id, |
| 51 base::MessageLoopProxy* capture_message_loop_proxy, | 51 base::MessageLoopProxy* capture_message_loop_proxy, |
| 52 VideoCaptureMessageFilter* filter) | 52 VideoCaptureMessageFilter* filter) |
| 53 : VideoCapture(), | 53 : VideoCapture(), |
| 54 message_filter_(filter), | 54 message_filter_(filter), |
| 55 capture_message_loop_proxy_(capture_message_loop_proxy), | 55 capture_message_loop_proxy_(capture_message_loop_proxy), |
| 56 io_message_loop_proxy_(ChildProcess::current()->io_message_loop_proxy()), | 56 io_message_loop_proxy_(ChildProcess::current()->io_message_loop_proxy()), |
| 57 device_id_(0), | 57 device_id_(0), |
| 58 video_type_(media::VideoCaptureCapability::kI420), | 58 video_type_(media::kI420), |
| 59 device_info_available_(false), | 59 device_info_available_(false), |
| 60 suspended_(false), | 60 suspended_(false), |
| 61 state_(VIDEO_CAPTURE_STATE_STOPPED) { | 61 state_(VIDEO_CAPTURE_STATE_STOPPED) { |
| 62 DCHECK(filter); | 62 DCHECK(filter); |
| 63 capture_format_.session_id = id; | 63 capture_format_.session_id = id; |
| 64 } | 64 } |
| 65 | 65 |
| 66 VideoCaptureImpl::~VideoCaptureImpl() { | 66 VideoCaptureImpl::~VideoCaptureImpl() { |
| 67 STLDeleteValues(&cached_dibs_); | 67 STLDeleteValues(&cached_dibs_); |
| 68 } | 68 } |
| (...skipping 10 matching lines...) Expand all Loading... |
| 79 | 79 |
| 80 void VideoCaptureImpl::DeInit(base::Closure task) { | 80 void VideoCaptureImpl::DeInit(base::Closure task) { |
| 81 capture_message_loop_proxy_->PostTask(FROM_HERE, | 81 capture_message_loop_proxy_->PostTask(FROM_HERE, |
| 82 base::Bind(&VideoCaptureImpl::DoDeInitOnCaptureThread, | 82 base::Bind(&VideoCaptureImpl::DoDeInitOnCaptureThread, |
| 83 base::Unretained(this), task)); | 83 base::Unretained(this), task)); |
| 84 } | 84 } |
| 85 | 85 |
| 86 void VideoCaptureImpl::StartCapture( | 86 void VideoCaptureImpl::StartCapture( |
| 87 media::VideoCapture::EventHandler* handler, | 87 media::VideoCapture::EventHandler* handler, |
| 88 const media::VideoCaptureCapability& capability) { | 88 const media::VideoCaptureCapability& capability) { |
| 89 DCHECK_EQ(capability.color, media::VideoCaptureCapability::kI420); | 89 DCHECK_EQ(capability.color, media::kI420); |
| 90 | 90 |
| 91 capture_message_loop_proxy_->PostTask(FROM_HERE, | 91 capture_message_loop_proxy_->PostTask(FROM_HERE, |
| 92 base::Bind(&VideoCaptureImpl::DoStartCaptureOnCaptureThread, | 92 base::Bind(&VideoCaptureImpl::DoStartCaptureOnCaptureThread, |
| 93 base::Unretained(this), handler, capability)); | 93 base::Unretained(this), handler, capability)); |
| 94 } | 94 } |
| 95 | 95 |
| 96 void VideoCaptureImpl::StopCapture(media::VideoCapture::EventHandler* handler) { | 96 void VideoCaptureImpl::StopCapture(media::VideoCapture::EventHandler* handler) { |
| 97 capture_message_loop_proxy_->PostTask(FROM_HERE, | 97 capture_message_loop_proxy_->PostTask(FROM_HERE, |
| 98 base::Bind(&VideoCaptureImpl::DoStopCaptureOnCaptureThread, | 98 base::Bind(&VideoCaptureImpl::DoStopCaptureOnCaptureThread, |
| 99 base::Unretained(this), handler)); | 99 base::Unretained(this), handler)); |
| (...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 431 StartCaptureInternal(); | 431 StartCaptureInternal(); |
| 432 } | 432 } |
| 433 | 433 |
| 434 void VideoCaptureImpl::StartCaptureInternal() { | 434 void VideoCaptureImpl::StartCaptureInternal() { |
| 435 DCHECK(capture_message_loop_proxy_->BelongsToCurrentThread()); | 435 DCHECK(capture_message_loop_proxy_->BelongsToCurrentThread()); |
| 436 DCHECK(device_id_); | 436 DCHECK(device_id_); |
| 437 | 437 |
| 438 media::VideoCaptureParams capability_as_params_copy; | 438 media::VideoCaptureParams capability_as_params_copy; |
| 439 capability_as_params_copy.width = capture_format_.width; | 439 capability_as_params_copy.width = capture_format_.width; |
| 440 capability_as_params_copy.height = capture_format_.height; | 440 capability_as_params_copy.height = capture_format_.height; |
| 441 capability_as_params_copy.frame_per_second = capture_format_.frame_rate; | 441 capability_as_params_copy.frame_rate = capture_format_.frame_rate; |
| 442 capability_as_params_copy.session_id = capture_format_.session_id; | 442 capability_as_params_copy.session_id = capture_format_.session_id; |
| 443 capability_as_params_copy.frame_size_type = capture_format_.frame_size_type; | 443 capability_as_params_copy.frame_size_type = capture_format_.frame_size_type; |
| 444 Send(new VideoCaptureHostMsg_Start(device_id_, capability_as_params_copy)); | 444 Send(new VideoCaptureHostMsg_Start(device_id_, capability_as_params_copy)); |
| 445 state_ = VIDEO_CAPTURE_STATE_STARTED; | 445 state_ = VIDEO_CAPTURE_STATE_STARTED; |
| 446 } | 446 } |
| 447 | 447 |
| 448 void VideoCaptureImpl::AddDelegateOnIOThread() { | 448 void VideoCaptureImpl::AddDelegateOnIOThread() { |
| 449 DCHECK(io_message_loop_proxy_->BelongsToCurrentThread()); | 449 DCHECK(io_message_loop_proxy_->BelongsToCurrentThread()); |
| 450 message_filter_->AddDelegate(this); | 450 message_filter_->AddDelegate(this); |
| 451 } | 451 } |
| (...skipping 30 matching lines...) Expand all Loading... |
| 482 if (it != clients->end()) { | 482 if (it != clients->end()) { |
| 483 handler->OnStopped(this); | 483 handler->OnStopped(this); |
| 484 handler->OnRemoved(this); | 484 handler->OnRemoved(this); |
| 485 clients->erase(it); | 485 clients->erase(it); |
| 486 found = true; | 486 found = true; |
| 487 } | 487 } |
| 488 return found; | 488 return found; |
| 489 } | 489 } |
| 490 | 490 |
| 491 } // namespace content | 491 } // namespace content |
| OLD | NEW |