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/browser/renderer_host/media/media_stream_manager.h" | 5 #include "content/browser/renderer_host/media/media_stream_manager.h" |
6 | 6 |
7 #include <list> | 7 #include <list> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
11 #include "base/command_line.h" | 11 #include "base/command_line.h" |
12 #include "base/compiler_specific.h" | 12 #include "base/compiler_specific.h" |
13 #include "base/logging.h" | 13 #include "base/logging.h" |
14 #include "base/power_monitor/power_monitor.h" | |
14 #include "base/rand_util.h" | 15 #include "base/rand_util.h" |
15 #include "base/run_loop.h" | 16 #include "base/run_loop.h" |
16 #include "base/strings/stringprintf.h" | 17 #include "base/strings/stringprintf.h" |
17 #include "base/threading/thread.h" | 18 #include "base/threading/thread.h" |
18 #include "content/browser/browser_main_loop.h" | 19 #include "content/browser/browser_main_loop.h" |
19 #include "content/browser/media/capture/web_contents_capture_util.h" | 20 #include "content/browser/media/capture/web_contents_capture_util.h" |
20 #include "content/browser/renderer_host/media/audio_input_device_manager.h" | 21 #include "content/browser/renderer_host/media/audio_input_device_manager.h" |
21 #include "content/browser/renderer_host/media/device_request_message_filter.h" | 22 #include "content/browser/renderer_host/media/device_request_message_filter.h" |
22 #include "content/browser/renderer_host/media/media_capture_devices_impl.h" | 23 #include "content/browser/renderer_host/media/media_capture_devices_impl.h" |
23 #include "content/browser/renderer_host/media/media_stream_requester.h" | 24 #include "content/browser/renderer_host/media/media_stream_requester.h" |
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
346 // Some unit tests create the MSM in the IO thread and assumes the | 347 // Some unit tests create the MSM in the IO thread and assumes the |
347 // initialization is done synchronously. | 348 // initialization is done synchronously. |
348 if (BrowserThread::CurrentlyOn(BrowserThread::IO)) { | 349 if (BrowserThread::CurrentlyOn(BrowserThread::IO)) { |
349 InitializeDeviceManagersOnIOThread(); | 350 InitializeDeviceManagersOnIOThread(); |
350 } else { | 351 } else { |
351 BrowserThread::PostTask( | 352 BrowserThread::PostTask( |
352 BrowserThread::IO, FROM_HERE, | 353 BrowserThread::IO, FROM_HERE, |
353 base::Bind(&MediaStreamManager::InitializeDeviceManagersOnIOThread, | 354 base::Bind(&MediaStreamManager::InitializeDeviceManagersOnIOThread, |
354 base::Unretained(this))); | 355 base::Unretained(this))); |
355 } | 356 } |
357 | |
358 base::PowerMonitor* power_monitor = base::PowerMonitor::Get(); | |
vrk (LEFT CHROMIUM)
2014/03/28 18:29:47
Can you add a comment explaining why PowerMonitor
| |
359 DCHECK(power_monitor); | |
360 power_monitor->AddObserver(this); | |
356 } | 361 } |
357 | 362 |
358 MediaStreamManager::~MediaStreamManager() { | 363 MediaStreamManager::~MediaStreamManager() { |
359 DVLOG(1) << "~MediaStreamManager"; | 364 DVLOG(1) << "~MediaStreamManager"; |
360 DCHECK(requests_.empty()); | 365 DCHECK(requests_.empty()); |
361 DCHECK(!device_task_runner_); | 366 DCHECK(!device_task_runner_); |
367 | |
368 base::PowerMonitor* power_monitor = base::PowerMonitor::Get(); | |
369 DCHECK(power_monitor); | |
vrk (LEFT CHROMIUM)
2014/03/28 18:29:47
Ditto above.
| |
370 power_monitor->RemoveObserver(this); | |
362 } | 371 } |
363 | 372 |
364 VideoCaptureManager* MediaStreamManager::video_capture_manager() { | 373 VideoCaptureManager* MediaStreamManager::video_capture_manager() { |
365 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 374 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
366 DCHECK(video_capture_manager_.get()); | 375 DCHECK(video_capture_manager_.get()); |
367 return video_capture_manager_.get(); | 376 return video_capture_manager_.get(); |
368 } | 377 } |
369 | 378 |
370 AudioInputDeviceManager* MediaStreamManager::audio_input_device_manager() { | 379 AudioInputDeviceManager* MediaStreamManager::audio_input_device_manager() { |
371 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 380 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
(...skipping 1202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1574 DCHECK_GE(active_enumeration_ref_count_[stream_type], 0); | 1583 DCHECK_GE(active_enumeration_ref_count_[stream_type], 0); |
1575 } | 1584 } |
1576 | 1585 |
1577 // static | 1586 // static |
1578 void MediaStreamManager::SendMessageToNativeLog(const std::string& message) { | 1587 void MediaStreamManager::SendMessageToNativeLog(const std::string& message) { |
1579 BrowserThread::PostTask( | 1588 BrowserThread::PostTask( |
1580 BrowserThread::UI, FROM_HERE, | 1589 BrowserThread::UI, FROM_HERE, |
1581 base::Bind(DoAddLogMessage, message)); | 1590 base::Bind(DoAddLogMessage, message)); |
1582 } | 1591 } |
1583 | 1592 |
1593 void MediaStreamManager::OnSuspend() { | |
1594 SendMessageToNativeLog("Power state suspended."); | |
1595 } | |
1596 | |
1597 void MediaStreamManager::OnResume() { | |
1598 SendMessageToNativeLog("Power state resumed."); | |
1599 } | |
1600 | |
1584 void MediaStreamManager::AddLogMessageOnIOThread(const std::string& message) { | 1601 void MediaStreamManager::AddLogMessageOnIOThread(const std::string& message) { |
1585 // Get render process ids on the IO thread. | 1602 // Get render process ids on the IO thread. |
1586 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); | 1603 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
1587 | 1604 |
1588 // Grab all unique process ids that request a MediaStream or have a | 1605 // Grab all unique process ids that request a MediaStream or have a |
1589 // MediaStream running. | 1606 // MediaStream running. |
1590 std::set<int> requesting_process_ids; | 1607 std::set<int> requesting_process_ids; |
1591 for (DeviceRequests::const_iterator it = requests_.begin(); | 1608 for (DeviceRequests::const_iterator it = requests_.begin(); |
1592 it != requests_.end(); ++it) { | 1609 it != requests_.end(); ++it) { |
1593 DeviceRequest* request = it->second; | 1610 DeviceRequest* request = it->second; |
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1881 if (it->device.type == MEDIA_DESKTOP_VIDEO_CAPTURE) { | 1898 if (it->device.type == MEDIA_DESKTOP_VIDEO_CAPTURE) { |
1882 video_capture_manager_->SetDesktopCaptureWindowId(it->session_id, | 1899 video_capture_manager_->SetDesktopCaptureWindowId(it->session_id, |
1883 window_id); | 1900 window_id); |
1884 break; | 1901 break; |
1885 } | 1902 } |
1886 } | 1903 } |
1887 } | 1904 } |
1888 } | 1905 } |
1889 | 1906 |
1890 } // namespace content | 1907 } // namespace content |
OLD | NEW |