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

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

Issue 10068037: RefCounted types should not have public destructors, content/browser part 1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: MSVC fixes Created 8 years, 8 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_controller.cc
diff --git a/content/browser/renderer_host/media/video_capture_controller.cc b/content/browser/renderer_host/media/video_capture_controller.cc
index d4ad734acd3a1c61ef946344a0d6490ff5618a05..c69f4d566ab6070c3d9d0433a24392ca744749ca 100644
--- a/content/browser/renderer_host/media/video_capture_controller.cc
+++ b/content/browser/renderer_host/media/video_capture_controller.cc
@@ -73,16 +73,6 @@ VideoCaptureController::VideoCaptureController(
memset(&current_params_, 0, sizeof(current_params_));
}
-VideoCaptureController::~VideoCaptureController() {
- // Delete all DIBs.
- STLDeleteContainerPairSecondPointers(owned_dibs_.begin(),
- owned_dibs_.end());
- STLDeleteContainerPointers(controller_clients_.begin(),
- controller_clients_.end());
- STLDeleteContainerPointers(pending_clients_.begin(),
- pending_clients_.end());
-}
-
void VideoCaptureController::StartCapture(
const VideoCaptureControllerID& id,
VideoCaptureControllerEventHandler* event_handler,
@@ -361,6 +351,23 @@ void VideoCaptureController::OnFrameInfo(
this, info));
}
+VideoCaptureController::~VideoCaptureController() {
+ // Delete all DIBs.
+ STLDeleteContainerPairSecondPointers(owned_dibs_.begin(),
+ owned_dibs_.end());
+ STLDeleteContainerPointers(controller_clients_.begin(),
+ controller_clients_.end());
+ STLDeleteContainerPointers(pending_clients_.begin(),
+ pending_clients_.end());
+}
+
+// Called by VideoCaptureManager when a device have been stopped.
+void VideoCaptureController::OnDeviceStopped() {
+ BrowserThread::PostTask(BrowserThread::IO,
+ FROM_HERE,
+ base::Bind(&VideoCaptureController::DoDeviceStoppedOnIOThread, this));
+}
+
void VideoCaptureController::DoIncomingCapturedFrameOnIOThread(
int buffer_id, base::Time timestamp) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
@@ -384,20 +391,6 @@ void VideoCaptureController::DoIncomingCapturedFrameOnIOThread(
owned_dibs_[buffer_id]->references = count;
}
-void VideoCaptureController::DoErrorOnIOThread() {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- state_ = video_capture::kError;
- ControllerClients::iterator client_it;
- for (client_it = controller_clients_.begin();
- client_it != controller_clients_.end(); client_it++) {
- (*client_it)->event_handler->OnError((*client_it)->controller_id);
- }
- for (client_it = pending_clients_.begin();
- client_it != pending_clients_.end(); client_it++) {
- (*client_it)->event_handler->OnError((*client_it)->controller_id);
- }
-}
-
void VideoCaptureController::DoFrameInfoOnIOThread(
const media::VideoCaptureDevice::Capability info) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
@@ -435,6 +428,28 @@ void VideoCaptureController::DoFrameInfoOnIOThread(
}
}
+void VideoCaptureController::DoErrorOnIOThread() {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
+ state_ = video_capture::kError;
+ ControllerClients::iterator client_it;
+ for (client_it = controller_clients_.begin();
+ client_it != controller_clients_.end(); client_it++) {
+ (*client_it)->event_handler->OnError((*client_it)->controller_id);
+ }
+ for (client_it = pending_clients_.begin();
+ client_it != pending_clients_.end(); client_it++) {
+ (*client_it)->event_handler->OnError((*client_it)->controller_id);
+ }
+}
+
+void VideoCaptureController::DoDeviceStoppedOnIOThread() {
+ DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
+ device_in_use_ = false;
+ if (state_ == video_capture::kStopping) {
+ PostStopping();
+ }
+}
+
void VideoCaptureController::SendFrameInfoAndBuffers(
ControllerClient* client, int buffer_size) {
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
@@ -456,6 +471,21 @@ void VideoCaptureController::SendFrameInfoAndBuffers(
}
}
+VideoCaptureController::ControllerClient*
+VideoCaptureController::FindClient(
+ const VideoCaptureControllerID& id,
+ VideoCaptureControllerEventHandler* handler,
+ const ControllerClients& clients) {
+ for (ControllerClients::const_iterator client_it = clients.begin();
+ client_it != clients.end(); client_it++) {
+ if ((*client_it)->controller_id == id &&
+ (*client_it)->event_handler == handler) {
+ return *client_it;
+ }
+ }
+ return NULL;
+}
+
// This function is called when all buffers have been returned to controller,
// or when device is stopped. It decides whether the device needs to be
// restarted.
@@ -513,35 +543,3 @@ bool VideoCaptureController::ClientHasDIB() {
}
return false;
}
-
-VideoCaptureController::ControllerClient*
-VideoCaptureController::FindClient(
- const VideoCaptureControllerID& id,
- VideoCaptureControllerEventHandler* handler,
- const ControllerClients& clients) {
- for (ControllerClients::const_iterator client_it = clients.begin();
- client_it != clients.end(); client_it++) {
- if ((*client_it)->controller_id == id &&
- (*client_it)->event_handler == handler) {
- return *client_it;
- }
- }
- return NULL;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-// Called by VideoCaptureManager when a device have been stopped.
-void VideoCaptureController::OnDeviceStopped() {
- BrowserThread::PostTask(BrowserThread::IO,
- FROM_HERE,
- base::Bind(&VideoCaptureController::DoDeviceStoppedOnIOThread, this));
-}
-
-void VideoCaptureController::DoDeviceStoppedOnIOThread() {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
- device_in_use_ = false;
- if (state_ == video_capture::kStopping) {
- PostStopping();
- }
-}
-

Powered by Google App Engine
This is Rietveld 408576698