Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6)

Side by Side Diff: content/browser/renderer_host/media/video_capture_host.cc

Issue 2673373003: getUserMeida: report device starting states (Closed)
Patch Set: rebase to Feb 10 Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/browser/renderer_host/media/video_capture_host.h" 5 #include "content/browser/renderer_host/media/video_capture_host.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 111
112 void VideoCaptureHost::OnEnded(VideoCaptureControllerID controller_id) { 112 void VideoCaptureHost::OnEnded(VideoCaptureControllerID controller_id) {
113 DVLOG(1) << __func__; 113 DVLOG(1) << __func__;
114 DCHECK_CURRENTLY_ON(BrowserThread::IO); 114 DCHECK_CURRENTLY_ON(BrowserThread::IO);
115 BrowserThread::PostTask( 115 BrowserThread::PostTask(
116 BrowserThread::IO, FROM_HERE, 116 BrowserThread::IO, FROM_HERE,
117 base::Bind(&VideoCaptureHost::DoEnded, weak_factory_.GetWeakPtr(), 117 base::Bind(&VideoCaptureHost::DoEnded, weak_factory_.GetWeakPtr(),
118 controller_id)); 118 controller_id));
119 } 119 }
120 120
121 void VideoCaptureHost::OnStarted(VideoCaptureControllerID controller_id) {
122 DVLOG(1) << __func__;
123 DCHECK_CURRENTLY_ON(BrowserThread::IO);
124 BrowserThread::PostTask(
125 BrowserThread::IO, FROM_HERE,
126 base::Bind(&VideoCaptureHost::DoStarted, weak_factory_.GetWeakPtr(),
127 controller_id));
128 }
129
121 void VideoCaptureHost::Start(int32_t device_id, 130 void VideoCaptureHost::Start(int32_t device_id,
122 int32_t session_id, 131 int32_t session_id,
123 const media::VideoCaptureParams& params, 132 const media::VideoCaptureParams& params,
124 mojom::VideoCaptureObserverPtr observer) { 133 mojom::VideoCaptureObserverPtr observer) {
125 DVLOG(1) << __func__ << " session_id=" << session_id 134 DVLOG(1) << __func__ << " session_id=" << session_id
126 << ", device_id=" << device_id << ", format=" 135 << ", device_id=" << device_id << ", format="
127 << media::VideoCaptureFormat::ToString(params.requested_format); 136 << media::VideoCaptureFormat::ToString(params.requested_format);
128 DCHECK_CURRENTLY_ON(BrowserThread::IO); 137 DCHECK_CURRENTLY_ON(BrowserThread::IO);
129 138
130 DCHECK(!base::ContainsKey(device_id_to_observer_map_, device_id)); 139 DCHECK(!base::ContainsKey(device_id_to_observer_map_, device_id));
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 return; 285 return;
277 286
278 if (base::ContainsKey(device_id_to_observer_map_, controller_id)) { 287 if (base::ContainsKey(device_id_to_observer_map_, controller_id)) {
279 device_id_to_observer_map_[controller_id]->OnStateChanged( 288 device_id_to_observer_map_[controller_id]->OnStateChanged(
280 mojom::VideoCaptureState::ENDED); 289 mojom::VideoCaptureState::ENDED);
281 } 290 }
282 291
283 DeleteVideoCaptureController(controller_id, false); 292 DeleteVideoCaptureController(controller_id, false);
284 } 293 }
285 294
295 void VideoCaptureHost::DoStarted(VideoCaptureControllerID controller_id) {
296 DVLOG(1) << __func__;
297 DCHECK_CURRENTLY_ON(BrowserThread::IO);
298 if (controllers_.find(controller_id) == controllers_.end())
299 return;
300
301 if (base::ContainsKey(device_id_to_observer_map_, controller_id)) {
302 device_id_to_observer_map_[controller_id]->OnStateChanged(
303 mojom::VideoCaptureState::STARTED);
304 }
305 }
306
286 void VideoCaptureHost::OnControllerAdded( 307 void VideoCaptureHost::OnControllerAdded(
287 int device_id, 308 int device_id,
288 const base::WeakPtr<VideoCaptureController>& controller) { 309 const base::WeakPtr<VideoCaptureController>& controller) {
289 DCHECK_CURRENTLY_ON(BrowserThread::IO); 310 DCHECK_CURRENTLY_ON(BrowserThread::IO);
290 VideoCaptureControllerID controller_id(device_id); 311 VideoCaptureControllerID controller_id(device_id);
291 auto it = controllers_.find(controller_id); 312 auto it = controllers_.find(controller_id);
292 if (it == controllers_.end()) { 313 if (it == controllers_.end()) {
293 if (controller) { 314 if (controller) {
294 media_stream_manager_->video_capture_manager()->StopCaptureForClient( 315 media_stream_manager_->video_capture_manager()->StopCaptureForClient(
295 controller.get(), controller_id, this, false); 316 controller.get(), controller_id, this, false);
296 } 317 }
297 return; 318 return;
298 } 319 }
299 320
300 if (!controller) { 321 if (!controller) {
301 if (base::ContainsKey(device_id_to_observer_map_, controller_id)) { 322 if (base::ContainsKey(device_id_to_observer_map_, controller_id)) {
302 device_id_to_observer_map_[device_id]->OnStateChanged( 323 device_id_to_observer_map_[device_id]->OnStateChanged(
303 mojom::VideoCaptureState::FAILED); 324 mojom::VideoCaptureState::FAILED);
304 } 325 }
305 controllers_.erase(controller_id); 326 controllers_.erase(controller_id);
306 return; 327 return;
307 } 328 }
308 329
309 if (base::ContainsKey(device_id_to_observer_map_, controller_id)) {
310 device_id_to_observer_map_[device_id]->OnStateChanged(
311 mojom::VideoCaptureState::STARTED);
312 }
313
314 DCHECK(!it->second); 330 DCHECK(!it->second);
315 it->second = controller; 331 it->second = controller;
316 } 332 }
317 333
318 void VideoCaptureHost::DeleteVideoCaptureController( 334 void VideoCaptureHost::DeleteVideoCaptureController(
319 VideoCaptureControllerID controller_id, bool on_error) { 335 VideoCaptureControllerID controller_id, bool on_error) {
320 DCHECK_CURRENTLY_ON(BrowserThread::IO); 336 DCHECK_CURRENTLY_ON(BrowserThread::IO);
321 337
322 auto it = controllers_.find(controller_id); 338 auto it = controllers_.find(controller_id);
323 if (it == controllers_.end()) 339 if (it == controllers_.end())
324 return; 340 return;
325 341
326 const base::WeakPtr<VideoCaptureController> controller = it->second; 342 const base::WeakPtr<VideoCaptureController> controller = it->second;
327 controllers_.erase(it); 343 controllers_.erase(it);
328 if (!controller) 344 if (!controller)
329 return; 345 return;
330 346
331 media_stream_manager_->video_capture_manager()->StopCaptureForClient( 347 media_stream_manager_->video_capture_manager()->StopCaptureForClient(
332 controller.get(), controller_id, this, on_error); 348 controller.get(), controller_id, this, on_error);
333 } 349 }
334 350
335 } // namespace content 351 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698