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

Unified Diff: content/browser/renderer_host/media/video_capture_manager.cc

Issue 10662049: Move the device enumerate/open/close work to device thread from IO thread (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: minor fix for the problem detected by the trybots Created 8 years, 6 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 side-by-side diff with in-line comments
Download patch
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..4d4e5a79e707ae0a364da5ceb422dbf3fe33d1dc 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"),
+VideoCaptureManager::VideoCaptureManager(
+ scoped_refptr<base::MessageLoopProxy> message_loop)
+ : message_loop_(message_loop),
listener_(NULL),
mflodman_chromium_OOO 2012/06/29 14:46:04 nit: indent this line and the two below.
no longer working on chromium 2012/07/02 08:40:49 Done.
new_capture_session_id_(kFirstSessionId),
use_fake_device_(false) {
- vc_device_thread_.Start();
}
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,10 +127,6 @@ void VideoCaptureManager::UseFakeDevice() {
use_fake_device_ = true;
}
-MessageLoop* VideoCaptureManager::GetMessageLoop() {
- return vc_device_thread_.message_loop();
-}
-
void VideoCaptureManager::OnEnumerateDevices() {
DCHECK(IsOnCaptureDeviceThread());
@@ -360,7 +355,7 @@ void VideoCaptureManager::PostOnError(int capture_session_id,
}
bool VideoCaptureManager::IsOnCaptureDeviceThread() const {
mflodman_chromium_OOO 2012/06/29 14:46:04 Maybe change name of this function now when the th
no longer working on chromium 2012/07/02 08:40:49 Done.
- return MessageLoop::current() == vc_device_thread_.message_loop();
+ return message_loop_->BelongsToCurrentThread();
}
void VideoCaptureManager::GetAvailableDevices(
@@ -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));
@@ -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));

Powered by Google App Engine
This is Rietveld 408576698