Chromium Code Reviews| 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..0e2a25489615c934ed1706207957189ecca3b4db 100644 |
| --- a/content/browser/renderer_host/media/video_capture_manager.cc |
| +++ b/content/browser/renderer_host/media/video_capture_manager.cc |
| @@ -39,23 +39,23 @@ struct VideoCaptureManager::Controller { |
| }; |
| VideoCaptureManager::VideoCaptureManager() |
| - : vc_device_thread_("VideoCaptureManagerThread"), |
| - listener_(NULL), |
| - new_capture_session_id_(kFirstSessionId), |
| - use_fake_device_(false) { |
| - vc_device_thread_.Start(); |
| + : listener_(NULL), |
| + new_capture_session_id_(kFirstSessionId), |
| + use_fake_device_(false) { |
| } |
| VideoCaptureManager::~VideoCaptureManager() { |
| - vc_device_thread_.Stop(); |
| DCHECK(devices_.empty()); |
| DCHECK(controllers_.empty()); |
| } |
| -void VideoCaptureManager::Register(MediaStreamProviderListener* listener) { |
| +void VideoCaptureManager::Register(MediaStreamProviderListener* listener, |
| + base::MessageLoopProxy* message_loop) { |
|
tommi (sloooow) - chröme
2012/07/04 13:46:48
device_thread_loop or device_loop
no longer working on chromium
2012/07/04 14:31:39
Done.
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| DCHECK(!listener_); |
| + DCHECK(!device_loop_); |
| listener_ = listener; |
| + device_loop_ = message_loop; |
| } |
| void VideoCaptureManager::Unregister() { |
| @@ -67,8 +67,7 @@ void VideoCaptureManager::Unregister() { |
| void VideoCaptureManager::EnumerateDevices() { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| DCHECK(listener_); |
| - |
| - vc_device_thread_.message_loop()->PostTask( |
| + device_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( |
| + device_loop_->PostTask( |
| FROM_HERE, |
| base::Bind(&VideoCaptureManager::OnOpen, this, video_capture_session_id, |
| device)); |
| @@ -91,8 +90,7 @@ int VideoCaptureManager::Open(const StreamDeviceInfo& device) { |
| void VideoCaptureManager::Close(int capture_session_id) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| DCHECK(listener_); |
| - |
| - vc_device_thread_.message_loop()->PostTask( |
| + device_loop_->PostTask( |
| FROM_HERE, |
| base::Bind(&VideoCaptureManager::OnClose, this, capture_session_id)); |
| } |
| @@ -101,8 +99,7 @@ void VideoCaptureManager::Start( |
| const media::VideoCaptureParams& capture_params, |
| media::VideoCaptureDevice::EventHandler* video_capture_receiver) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| - |
| - vc_device_thread_.message_loop()->PostTask( |
| + device_loop_->PostTask( |
| FROM_HERE, |
| base::Bind(&VideoCaptureManager::OnStart, this, capture_params, |
| video_capture_receiver)); |
| @@ -112,8 +109,7 @@ void VideoCaptureManager::Stop( |
| const media::VideoCaptureSessionId& capture_session_id, |
| base::Closure stopped_cb) { |
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |
| - |
| - vc_device_thread_.message_loop()->PostTask( |
| + device_loop_->PostTask( |
| FROM_HERE, |
| base::Bind(&VideoCaptureManager::OnStop, this, capture_session_id, |
| stopped_cb)); |
| @@ -128,12 +124,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 +144,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 +178,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 +214,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 +245,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 +317,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 +325,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 +334,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 +351,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 device_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 +368,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 +382,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 +395,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 +412,7 @@ void VideoCaptureManager::AddController( |
| VideoCaptureControllerEventHandler* handler, |
| base::Callback<void(VideoCaptureController*)> added_cb) { |
| DCHECK(handler); |
| - vc_device_thread_.message_loop()->PostTask( |
| + device_loop_->PostTask( |
| FROM_HERE, |
| base::Bind(&VideoCaptureManager::DoAddControllerOnDeviceThread, |
| this, capture_params, handler, added_cb)); |
| @@ -430,7 +422,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 +444,7 @@ void VideoCaptureManager::RemoveController( |
| VideoCaptureController* controller, |
| VideoCaptureControllerEventHandler* handler) { |
| DCHECK(handler); |
| - vc_device_thread_.message_loop()->PostTask( |
| + device_loop_->PostTask( |
| FROM_HERE, |
| base::Bind(&VideoCaptureManager::DoRemoveControllerOnDeviceThread, this, |
| make_scoped_refptr(controller), handler)); |
| @@ -461,7 +453,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 +477,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; |