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

Unified Diff: content/renderer/media/video_capture_impl.cc

Issue 978993002: Changed thread_checker on VideoCaptureImpl and VideoCaptureImplManager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased. Created 5 years, 9 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/renderer/media/video_capture_impl.cc
diff --git a/content/renderer/media/video_capture_impl.cc b/content/renderer/media/video_capture_impl.cc
index 9c5c53449e7b22f38445f8cc5ee2eb15a353ac34..d1a2df13827aba005cbe80ad6f430b2579f1caa5 100644
--- a/content/renderer/media/video_capture_impl.cc
+++ b/content/renderer/media/video_capture_impl.cc
@@ -52,27 +52,29 @@ VideoCaptureImpl::VideoCaptureImpl(
state_(VIDEO_CAPTURE_STATE_STOPPED),
weak_factory_(this) {
DCHECK(filter);
- render_io_thread_checker_.DetachFromThread();
}
VideoCaptureImpl::~VideoCaptureImpl() {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
}
void VideoCaptureImpl::Init() {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ // For creating callbacks in unittest, this class may be constructed from a
+ // different thread than the IO thread, e.g. wherever unittest runs on.
+ // Therefore, this function should define the thread ownership.
+ io_message_loop_ = base::MessageLoopProxy::current();
mcasas 2015/03/16 20:34:06 My optimisation-seeker-me chills when seeing a mem
emircan 2015/03/19 00:40:44 I see there is no use for it in release builds. Th
message_filter_->AddDelegate(this);
}
void VideoCaptureImpl::DeInit() {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
if (state_ == VIDEO_CAPTURE_STATE_STARTED)
Send(new VideoCaptureHostMsg_Stop(device_id_));
message_filter_->RemoveDelegate(this);
}
void VideoCaptureImpl::SuspendCapture(bool suspend) {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
Send(suspend ?
static_cast<IPC::Message*>(new VideoCaptureHostMsg_Pause(device_id_)) :
static_cast<IPC::Message*>(
@@ -84,7 +86,7 @@ void VideoCaptureImpl::StartCapture(
const media::VideoCaptureParams& params,
const VideoCaptureStateUpdateCB& state_update_cb,
const VideoCaptureDeliverFrameCB& deliver_frame_cb) {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
ClientInfo client_info;
client_info.params = params;
client_info.state_update_cb = state_update_cb;
@@ -132,7 +134,7 @@ void VideoCaptureImpl::StartCapture(
}
void VideoCaptureImpl::StopCapture(int client_id) {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
// A client ID can be in only one client list.
// If this ID is in any client list, we can just remove it from
@@ -153,7 +155,7 @@ void VideoCaptureImpl::StopCapture(int client_id) {
void VideoCaptureImpl::GetDeviceSupportedFormats(
const VideoCaptureDeviceFormatsCB& callback) {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
device_formats_cb_queue_.push_back(callback);
if (device_formats_cb_queue_.size() == 1)
Send(new VideoCaptureHostMsg_GetDeviceSupportedFormats(device_id_,
@@ -162,7 +164,7 @@ void VideoCaptureImpl::GetDeviceSupportedFormats(
void VideoCaptureImpl::GetDeviceFormatsInUse(
const VideoCaptureDeviceFormatsCB& callback) {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
device_formats_in_use_cb_queue_.push_back(callback);
if (device_formats_in_use_cb_queue_.size() == 1)
Send(
@@ -172,7 +174,7 @@ void VideoCaptureImpl::GetDeviceFormatsInUse(
void VideoCaptureImpl::OnBufferCreated(
base::SharedMemoryHandle handle,
int length, int buffer_id) {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
// In case client calls StopCapture before the arrival of created buffer,
// just close this buffer and return.
@@ -196,7 +198,7 @@ void VideoCaptureImpl::OnBufferCreated(
}
void VideoCaptureImpl::OnBufferDestroyed(int buffer_id) {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
const ClientBufferMap::iterator iter = client_buffers_.find(buffer_id);
if (iter == client_buffers_.end())
@@ -212,7 +214,7 @@ void VideoCaptureImpl::OnBufferReceived(int buffer_id,
const gfx::Rect& visible_rect,
base::TimeTicks timestamp,
const base::DictionaryValue& metadata) {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
if (state_ != VIDEO_CAPTURE_STATE_STARTED || suspended_) {
Send(new VideoCaptureHostMsg_BufferReady(device_id_, buffer_id, 0));
@@ -261,7 +263,7 @@ void VideoCaptureImpl::OnMailboxBufferReceived(
const gfx::Size& packed_frame_size,
base::TimeTicks timestamp,
const base::DictionaryValue& metadata) {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
if (state_ != VIDEO_CAPTURE_STATE_STARTED || suspended_) {
Send(new VideoCaptureHostMsg_BufferReady(device_id_, buffer_id, 0));
@@ -288,13 +290,13 @@ void VideoCaptureImpl::OnClientBufferFinished(
int buffer_id,
const scoped_refptr<ClientBuffer>& /* ignored_buffer */,
uint32 release_sync_point) {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
Send(new VideoCaptureHostMsg_BufferReady(
device_id_, buffer_id, release_sync_point));
}
void VideoCaptureImpl::OnStateChanged(VideoCaptureState state) {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
switch (state) {
case VIDEO_CAPTURE_STATE_STARTED:
@@ -336,7 +338,7 @@ void VideoCaptureImpl::OnStateChanged(VideoCaptureState state) {
void VideoCaptureImpl::OnDeviceSupportedFormatsEnumerated(
const media::VideoCaptureFormats& supported_formats) {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
for (size_t i = 0; i < device_formats_cb_queue_.size(); ++i)
device_formats_cb_queue_[i].Run(supported_formats);
device_formats_cb_queue_.clear();
@@ -344,14 +346,14 @@ void VideoCaptureImpl::OnDeviceSupportedFormatsEnumerated(
void VideoCaptureImpl::OnDeviceFormatsInUseReceived(
const media::VideoCaptureFormats& formats_in_use) {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
for (size_t i = 0; i < device_formats_in_use_cb_queue_.size(); ++i)
device_formats_in_use_cb_queue_[i].Run(formats_in_use);
device_formats_in_use_cb_queue_.clear();
}
void VideoCaptureImpl::OnDelegateAdded(int32 device_id) {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
DVLOG(1) << "OnDelegateAdded: device_id " << device_id;
device_id_ = device_id;
@@ -366,7 +368,7 @@ void VideoCaptureImpl::OnDelegateAdded(int32 device_id) {
}
void VideoCaptureImpl::StopDevice() {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
if (state_ == VIDEO_CAPTURE_STATE_STARTED) {
state_ = VIDEO_CAPTURE_STATE_STOPPING;
@@ -376,7 +378,7 @@ void VideoCaptureImpl::StopDevice() {
}
void VideoCaptureImpl::RestartCapture() {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
DCHECK_EQ(state_, VIDEO_CAPTURE_STATE_STOPPED);
int width = 0;
@@ -397,7 +399,7 @@ void VideoCaptureImpl::RestartCapture() {
}
void VideoCaptureImpl::StartCaptureInternal() {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
DCHECK(device_id_);
Send(new VideoCaptureHostMsg_Start(device_id_, session_id_, params_));
@@ -405,12 +407,12 @@ void VideoCaptureImpl::StartCaptureInternal() {
}
void VideoCaptureImpl::Send(IPC::Message* message) {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
message_filter_->Send(message);
}
bool VideoCaptureImpl::RemoveClient(int client_id, ClientInfoMap* clients) {
- DCHECK(render_io_thread_checker_.CalledOnValidThread());
+ DCHECK(io_message_loop_->BelongsToCurrentThread());
bool found = false;
const ClientInfoMap::iterator it = clients->find(client_id);

Powered by Google App Engine
This is Rietveld 408576698