Index: content/browser/renderer_host/media/video_capture_manager.cc |
diff --git a/content/browser/renderer_host/media/video_capture_manager.cc b/content/browser/renderer_host/media/video_capture_manager.cc |
index be5738de38e27da91802d8e2a04467529ce4710b..088b699c5b9c0991c7120d472d30a70fa3f1b637 100644 |
--- a/content/browser/renderer_host/media/video_capture_manager.cc |
+++ b/content/browser/renderer_host/media/video_capture_manager.cc |
@@ -38,16 +38,15 @@ struct VideoCaptureManager::Controller { |
Handlers handlers; |
}; |
-VideoCaptureManager::VideoCaptureManager() |
- : vc_device_thread_("VideoCaptureManagerThread"), |
- listener_(NULL), |
- new_capture_session_id_(kFirstSessionId), |
- use_fake_device_(false) { |
- vc_device_thread_.Start(); |
+VideoCaptureManager::VideoCaptureManager( |
+ scoped_refptr<base::MessageLoopProxy> message_loop) |
tommi (sloooow) - chröme
2012/07/02 13:36:36
no need for scoped_refptr<>
no longer working on chromium
2012/07/04 12:35:25
Done.
|
+ : message_loop_(message_loop), |
+ listener_(NULL), |
+ new_capture_session_id_(kFirstSessionId), |
+ use_fake_device_(false) { |
} |
VideoCaptureManager::~VideoCaptureManager() { |
- vc_device_thread_.Stop(); |
DCHECK(devices_.empty()); |
DCHECK(controllers_.empty()); |
} |
@@ -68,7 +67,7 @@ void VideoCaptureManager::EnumerateDevices() { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
DCHECK(listener_); |
- vc_device_thread_.message_loop()->PostTask( |
+ message_loop_->PostTask( |
FROM_HERE, |
base::Bind(&VideoCaptureManager::OnEnumerateDevices, this)); |
} |
@@ -80,7 +79,7 @@ int VideoCaptureManager::Open(const StreamDeviceInfo& device) { |
// Generate a new id for this device. |
int video_capture_session_id = new_capture_session_id_++; |
- vc_device_thread_.message_loop()->PostTask( |
+ message_loop_->PostTask( |
FROM_HERE, |
base::Bind(&VideoCaptureManager::OnOpen, this, video_capture_session_id, |
device)); |
@@ -92,7 +91,7 @@ void VideoCaptureManager::Close(int capture_session_id) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
DCHECK(listener_); |
- vc_device_thread_.message_loop()->PostTask( |
+ message_loop_->PostTask( |
FROM_HERE, |
base::Bind(&VideoCaptureManager::OnClose, this, capture_session_id)); |
} |
@@ -102,7 +101,7 @@ void VideoCaptureManager::Start( |
media::VideoCaptureDevice::EventHandler* video_capture_receiver) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- vc_device_thread_.message_loop()->PostTask( |
+ message_loop_->PostTask( |
FROM_HERE, |
base::Bind(&VideoCaptureManager::OnStart, this, capture_params, |
video_capture_receiver)); |
@@ -113,7 +112,7 @@ void VideoCaptureManager::Stop( |
base::Closure stopped_cb) { |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
- vc_device_thread_.message_loop()->PostTask( |
+ message_loop_->PostTask( |
FROM_HERE, |
base::Bind(&VideoCaptureManager::OnStop, this, capture_session_id, |
stopped_cb)); |
@@ -128,12 +127,8 @@ void VideoCaptureManager::UseFakeDevice() { |
use_fake_device_ = true; |
} |
-MessageLoop* VideoCaptureManager::GetMessageLoop() { |
- return vc_device_thread_.message_loop(); |
-} |
- |
void VideoCaptureManager::OnEnumerateDevices() { |
- DCHECK(IsOnCaptureDeviceThread()); |
+ DCHECK(IsOnDeviceThread()); |
media::VideoCaptureDevice::Names device_names; |
GetAvailableDevices(&device_names); |
@@ -152,7 +147,7 @@ void VideoCaptureManager::OnEnumerateDevices() { |
void VideoCaptureManager::OnOpen(int capture_session_id, |
const StreamDeviceInfo& device) { |
- DCHECK(IsOnCaptureDeviceThread()); |
+ DCHECK(IsOnDeviceThread()); |
DCHECK(devices_.find(capture_session_id) == devices_.end()); |
DVLOG(1) << "VideoCaptureManager::OnOpen, id " << capture_session_id; |
@@ -186,7 +181,7 @@ void VideoCaptureManager::OnOpen(int capture_session_id, |
} |
void VideoCaptureManager::OnClose(int capture_session_id) { |
- DCHECK(IsOnCaptureDeviceThread()); |
+ DCHECK(IsOnDeviceThread()); |
DVLOG(1) << "VideoCaptureManager::OnClose, id " << capture_session_id; |
media::VideoCaptureDevice* video_capture_device = NULL; |
@@ -222,7 +217,7 @@ void VideoCaptureManager::OnClose(int capture_session_id) { |
void VideoCaptureManager::OnStart( |
const media::VideoCaptureParams capture_params, |
media::VideoCaptureDevice::EventHandler* video_capture_receiver) { |
- DCHECK(IsOnCaptureDeviceThread()); |
+ DCHECK(IsOnDeviceThread()); |
DCHECK(video_capture_receiver != NULL); |
DVLOG(1) << "VideoCaptureManager::OnStart, (" << capture_params.width |
<< ", " << capture_params.height |
@@ -253,7 +248,7 @@ void VideoCaptureManager::OnStart( |
void VideoCaptureManager::OnStop( |
const media::VideoCaptureSessionId capture_session_id, |
base::Closure stopped_cb) { |
- DCHECK(IsOnCaptureDeviceThread()); |
+ DCHECK(IsOnDeviceThread()); |
DVLOG(1) << "VideoCaptureManager::OnStop, id " << capture_session_id; |
VideoCaptureDevices::iterator it = devices_.find(capture_session_id); |
@@ -325,7 +320,7 @@ void VideoCaptureManager::OnError(int capture_session_id, |
} |
void VideoCaptureManager::PostOnOpened(int capture_session_id) { |
- DCHECK(IsOnCaptureDeviceThread()); |
+ DCHECK(IsOnDeviceThread()); |
BrowserThread::PostTask(BrowserThread::IO, |
FROM_HERE, |
base::Bind(&VideoCaptureManager::OnOpened, this, |
@@ -333,7 +328,7 @@ void VideoCaptureManager::PostOnOpened(int capture_session_id) { |
} |
void VideoCaptureManager::PostOnClosed(int capture_session_id) { |
- DCHECK(IsOnCaptureDeviceThread()); |
+ DCHECK(IsOnDeviceThread()); |
BrowserThread::PostTask(BrowserThread::IO, |
FROM_HERE, |
base::Bind(&VideoCaptureManager::OnClosed, this, |
@@ -342,7 +337,7 @@ void VideoCaptureManager::PostOnClosed(int capture_session_id) { |
void VideoCaptureManager::PostOnDevicesEnumerated( |
const StreamDeviceInfoArray& devices) { |
- DCHECK(IsOnCaptureDeviceThread()); |
+ DCHECK(IsOnDeviceThread()); |
BrowserThread::PostTask(BrowserThread::IO, |
FROM_HERE, |
base::Bind(&VideoCaptureManager::OnDevicesEnumerated, |
@@ -359,13 +354,13 @@ void VideoCaptureManager::PostOnError(int capture_session_id, |
capture_session_id, error)); |
} |
-bool VideoCaptureManager::IsOnCaptureDeviceThread() const { |
- return MessageLoop::current() == vc_device_thread_.message_loop(); |
+bool VideoCaptureManager::IsOnDeviceThread() const { |
+ return message_loop_->BelongsToCurrentThread(); |
} |
void VideoCaptureManager::GetAvailableDevices( |
media::VideoCaptureDevice::Names* device_names) { |
- DCHECK(IsOnCaptureDeviceThread()); |
+ DCHECK(IsOnDeviceThread()); |
if (!use_fake_device_) { |
media::VideoCaptureDevice::GetDeviceNames(device_names); |
@@ -376,7 +371,7 @@ void VideoCaptureManager::GetAvailableDevices( |
bool VideoCaptureManager::DeviceOpened( |
const media::VideoCaptureDevice::Name& device_name) { |
- DCHECK(IsOnCaptureDeviceThread()); |
+ DCHECK(IsOnDeviceThread()); |
for (VideoCaptureDevices::iterator it = devices_.begin(); |
it != devices_.end(); ++it) { |
@@ -390,7 +385,7 @@ bool VideoCaptureManager::DeviceOpened( |
media::VideoCaptureDevice* VideoCaptureManager::GetOpenedDevice( |
const StreamDeviceInfo& device_info) { |
- DCHECK(IsOnCaptureDeviceThread()); |
+ DCHECK(IsOnDeviceThread()); |
for (VideoCaptureDevices::iterator it = devices_.begin(); |
it != devices_.end(); it++) { |
@@ -403,7 +398,7 @@ media::VideoCaptureDevice* VideoCaptureManager::GetOpenedDevice( |
bool VideoCaptureManager::DeviceInUse( |
const media::VideoCaptureDevice* video_capture_device) { |
- DCHECK(IsOnCaptureDeviceThread()); |
+ DCHECK(IsOnDeviceThread()); |
for (VideoCaptureDevices::iterator it = devices_.begin(); |
it != devices_.end(); ++it) { |
@@ -420,7 +415,7 @@ void VideoCaptureManager::AddController( |
VideoCaptureControllerEventHandler* handler, |
base::Callback<void(VideoCaptureController*)> added_cb) { |
DCHECK(handler); |
- vc_device_thread_.message_loop()->PostTask( |
+ message_loop_->PostTask( |
FROM_HERE, |
base::Bind(&VideoCaptureManager::DoAddControllerOnDeviceThread, |
this, capture_params, handler, added_cb)); |
@@ -430,7 +425,7 @@ void VideoCaptureManager::DoAddControllerOnDeviceThread( |
const media::VideoCaptureParams capture_params, |
VideoCaptureControllerEventHandler* handler, |
base::Callback<void(VideoCaptureController*)> added_cb) { |
- DCHECK(IsOnCaptureDeviceThread()); |
+ DCHECK(IsOnDeviceThread()); |
media::VideoCaptureDevice* video_capture_device = |
GetDeviceInternal(capture_params.session_id); |
@@ -452,7 +447,7 @@ void VideoCaptureManager::RemoveController( |
VideoCaptureController* controller, |
VideoCaptureControllerEventHandler* handler) { |
DCHECK(handler); |
- vc_device_thread_.message_loop()->PostTask( |
+ message_loop_->PostTask( |
FROM_HERE, |
base::Bind(&VideoCaptureManager::DoRemoveControllerOnDeviceThread, this, |
make_scoped_refptr(controller), handler)); |
@@ -461,7 +456,7 @@ void VideoCaptureManager::RemoveController( |
void VideoCaptureManager::DoRemoveControllerOnDeviceThread( |
VideoCaptureController* controller, |
VideoCaptureControllerEventHandler* handler) { |
- DCHECK(IsOnCaptureDeviceThread()); |
+ DCHECK(IsOnDeviceThread()); |
for (Controllers::iterator cit = controllers_.begin(); |
cit != controllers_.end(); ++cit) { |
@@ -485,7 +480,7 @@ void VideoCaptureManager::DoRemoveControllerOnDeviceThread( |
media::VideoCaptureDevice* VideoCaptureManager::GetDeviceInternal( |
int capture_session_id) { |
- DCHECK(IsOnCaptureDeviceThread()); |
+ DCHECK(IsOnDeviceThread()); |
VideoCaptureDevices::iterator dit = devices_.find(capture_session_id); |
if (dit != devices_.end()) { |
return dit->second; |