| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/browser/renderer_host/media/video_capture_host.h" | 5 #include "content/browser/renderer_host/media/video_capture_host.h" |
| 6 | 6 |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/stl_util.h" | 8 #include "base/stl_util.h" |
| 9 #include "content/browser/renderer_host/media/media_stream_manager.h" |
| 10 #include "content/browser/resource_context.h" |
| 9 #include "content/common/media/video_capture_messages.h" | 11 #include "content/common/media/video_capture_messages.h" |
| 10 | 12 |
| 11 VideoCaptureHost::VideoCaptureHost() {} | 13 VideoCaptureHost::VideoCaptureHost( |
| 14 const content::ResourceContext* resource_context) |
| 15 : resource_context_(resource_context) { |
| 16 } |
| 12 | 17 |
| 13 VideoCaptureHost::~VideoCaptureHost() {} | 18 VideoCaptureHost::~VideoCaptureHost() {} |
| 14 | 19 |
| 15 void VideoCaptureHost::OnChannelClosing() { | 20 void VideoCaptureHost::OnChannelClosing() { |
| 16 BrowserMessageFilter::OnChannelClosing(); | 21 BrowserMessageFilter::OnChannelClosing(); |
| 17 | 22 |
| 18 // Since the IPC channel is gone, close all requested VideCaptureDevices. | 23 // Since the IPC channel is gone, close all requested VideCaptureDevices. |
| 19 for (EntryMap::iterator it = entries_.begin(); it != entries_.end(); it++) { | 24 for (EntryMap::iterator it = entries_.begin(); it != entries_.end(); it++) { |
| 20 VideoCaptureController* controller = it->second; | 25 VideoCaptureController* controller = it->second; |
| 21 // Since the channel is closing we need a task to make sure VideoCaptureHost | 26 // Since the channel is closing we need a task to make sure VideoCaptureHost |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 140 | 145 |
| 141 void VideoCaptureHost::OnStartCapture(int device_id, | 146 void VideoCaptureHost::OnStartCapture(int device_id, |
| 142 const media::VideoCaptureParams& params) { | 147 const media::VideoCaptureParams& params) { |
| 143 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 148 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 144 | 149 |
| 145 VideoCaptureControllerID controller_id(device_id); | 150 VideoCaptureControllerID controller_id(device_id); |
| 146 | 151 |
| 147 DCHECK(entries_.find(controller_id) == entries_.end()); | 152 DCHECK(entries_.find(controller_id) == entries_.end()); |
| 148 | 153 |
| 149 scoped_refptr<VideoCaptureController> controller = | 154 scoped_refptr<VideoCaptureController> controller = |
| 150 new VideoCaptureController(controller_id, peer_handle(), this); | 155 new VideoCaptureController( |
| 156 controller_id, peer_handle(), this, |
| 157 resource_context_->media_stream_manager()->video_capture_manager()); |
| 151 entries_.insert(std::make_pair(controller_id, controller)); | 158 entries_.insert(std::make_pair(controller_id, controller)); |
| 152 controller->StartCapture(params); | 159 controller->StartCapture(params); |
| 153 } | 160 } |
| 154 | 161 |
| 155 void VideoCaptureHost::OnStopCapture(int device_id) { | 162 void VideoCaptureHost::OnStopCapture(int device_id) { |
| 156 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 163 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 157 | 164 |
| 158 VideoCaptureControllerID controller_id(device_id); | 165 VideoCaptureControllerID controller_id(device_id); |
| 159 EntryMap::iterator it = entries_.find(controller_id); | 166 EntryMap::iterator it = entries_.find(controller_id); |
| 160 if (it != entries_.end()) { | 167 if (it != entries_.end()) { |
| (...skipping 26 matching lines...) Expand all Loading... |
| 187 | 194 |
| 188 void VideoCaptureHost::DoDeleteVideoCaptureController( | 195 void VideoCaptureHost::DoDeleteVideoCaptureController( |
| 189 const VideoCaptureControllerID& id) { | 196 const VideoCaptureControllerID& id) { |
| 190 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 197 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| 191 | 198 |
| 192 // Report that the device have successfully been stopped. | 199 // Report that the device have successfully been stopped. |
| 193 Send(new VideoCaptureMsg_StateChanged(id.device_id, | 200 Send(new VideoCaptureMsg_StateChanged(id.device_id, |
| 194 media::VideoCapture::kStopped)); | 201 media::VideoCapture::kStopped)); |
| 195 entries_.erase(id); | 202 entries_.erase(id); |
| 196 } | 203 } |
| OLD | NEW |