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

Side by Side Diff: content/browser/renderer_host/media/video_capture_controller.cc

Issue 216473002: Replace DCHECK(BrowserThread::CurrentlyOn) with DCHECK_CURRENTLY_ON in content/browser/renderer_hos… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Sync to r260263 Created 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/media/video_capture_controller.h" 5 #include "content/browser/renderer_host/media/video_capture_controller.h"
6 6
7 #include <map> 7 #include <map>
8 #include <set> 8 #include <set>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 new VideoCaptureDeviceClient(this->GetWeakPtr(), buffer_pool_)); 171 new VideoCaptureDeviceClient(this->GetWeakPtr(), buffer_pool_));
172 return result.Pass(); 172 return result.Pass();
173 } 173 }
174 174
175 void VideoCaptureController::AddClient( 175 void VideoCaptureController::AddClient(
176 const VideoCaptureControllerID& id, 176 const VideoCaptureControllerID& id,
177 VideoCaptureControllerEventHandler* event_handler, 177 VideoCaptureControllerEventHandler* event_handler,
178 base::ProcessHandle render_process, 178 base::ProcessHandle render_process,
179 media::VideoCaptureSessionId session_id, 179 media::VideoCaptureSessionId session_id,
180 const media::VideoCaptureParams& params) { 180 const media::VideoCaptureParams& params) {
181 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 181 DCHECK_CURRENTLY_ON(BrowserThread::IO);
182 DVLOG(1) << "VideoCaptureController::AddClient, id " << id.device_id 182 DVLOG(1) << "VideoCaptureController::AddClient, id " << id.device_id
183 << ", " << params.requested_format.frame_size.ToString() 183 << ", " << params.requested_format.frame_size.ToString()
184 << ", " << params.requested_format.frame_rate 184 << ", " << params.requested_format.frame_rate
185 << ", " << session_id 185 << ", " << session_id
186 << ")"; 186 << ")";
187 187
188 // If this is the first client added to the controller, cache the parameters. 188 // If this is the first client added to the controller, cache the parameters.
189 if (!controller_clients_.size()) 189 if (!controller_clients_.size())
190 video_capture_format_ = params.requested_format; 190 video_capture_format_ = params.requested_format;
191 191
(...skipping 13 matching lines...) Expand all
205 // client. 205 // client.
206 if (state_ == VIDEO_CAPTURE_STATE_STARTED) { 206 if (state_ == VIDEO_CAPTURE_STATE_STARTED) {
207 controller_clients_.push_back(client); 207 controller_clients_.push_back(client);
208 return; 208 return;
209 } 209 }
210 } 210 }
211 211
212 int VideoCaptureController::RemoveClient( 212 int VideoCaptureController::RemoveClient(
213 const VideoCaptureControllerID& id, 213 const VideoCaptureControllerID& id,
214 VideoCaptureControllerEventHandler* event_handler) { 214 VideoCaptureControllerEventHandler* event_handler) {
215 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 215 DCHECK_CURRENTLY_ON(BrowserThread::IO);
216 DVLOG(1) << "VideoCaptureController::RemoveClient, id " << id.device_id; 216 DVLOG(1) << "VideoCaptureController::RemoveClient, id " << id.device_id;
217 217
218 ControllerClient* client = FindClient(id, event_handler, controller_clients_); 218 ControllerClient* client = FindClient(id, event_handler, controller_clients_);
219 if (!client) 219 if (!client)
220 return kInvalidMediaCaptureSessionId; 220 return kInvalidMediaCaptureSessionId;
221 221
222 // Take back all buffers held by the |client|. 222 // Take back all buffers held by the |client|.
223 for (ControllerClient::ActiveBufferMap::iterator buffer_it = 223 for (ControllerClient::ActiveBufferMap::iterator buffer_it =
224 client->active_buffers.begin(); 224 client->active_buffers.begin();
225 buffer_it != client->active_buffers.end(); 225 buffer_it != client->active_buffers.end();
226 ++buffer_it) { 226 ++buffer_it) {
227 buffer_pool_->RelinquishConsumerHold(buffer_it->first, 1); 227 buffer_pool_->RelinquishConsumerHold(buffer_it->first, 1);
228 } 228 }
229 client->active_buffers.clear(); 229 client->active_buffers.clear();
230 230
231 int session_id = client->session_id; 231 int session_id = client->session_id;
232 controller_clients_.remove(client); 232 controller_clients_.remove(client);
233 delete client; 233 delete client;
234 234
235 return session_id; 235 return session_id;
236 } 236 }
237 237
238 void VideoCaptureController::StopSession(int session_id) { 238 void VideoCaptureController::StopSession(int session_id) {
239 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 239 DCHECK_CURRENTLY_ON(BrowserThread::IO);
240 DVLOG(1) << "VideoCaptureController::StopSession, id " << session_id; 240 DVLOG(1) << "VideoCaptureController::StopSession, id " << session_id;
241 241
242 ControllerClient* client = FindClient(session_id, controller_clients_); 242 ControllerClient* client = FindClient(session_id, controller_clients_);
243 243
244 if (client) { 244 if (client) {
245 client->session_closed = true; 245 client->session_closed = true;
246 client->event_handler->OnEnded(client->controller_id); 246 client->event_handler->OnEnded(client->controller_id);
247 } 247 }
248 } 248 }
249 249
250 void VideoCaptureController::ReturnBuffer( 250 void VideoCaptureController::ReturnBuffer(
251 const VideoCaptureControllerID& id, 251 const VideoCaptureControllerID& id,
252 VideoCaptureControllerEventHandler* event_handler, 252 VideoCaptureControllerEventHandler* event_handler,
253 int buffer_id, 253 int buffer_id,
254 uint32 sync_point) { 254 uint32 sync_point) {
255 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 255 DCHECK_CURRENTLY_ON(BrowserThread::IO);
256 256
257 ControllerClient* client = FindClient(id, event_handler, controller_clients_); 257 ControllerClient* client = FindClient(id, event_handler, controller_clients_);
258 258
259 // If this buffer is not held by this client, or this client doesn't exist 259 // If this buffer is not held by this client, or this client doesn't exist
260 // in controller, do nothing. 260 // in controller, do nothing.
261 ControllerClient::ActiveBufferMap::iterator iter; 261 ControllerClient::ActiveBufferMap::iterator iter;
262 if (!client || (iter = client->active_buffers.find(buffer_id)) == 262 if (!client || (iter = client->active_buffers.find(buffer_id)) ==
263 client->active_buffers.end()) { 263 client->active_buffers.end()) {
264 NOTREACHED(); 264 NOTREACHED();
265 return; 265 return;
266 } 266 }
267 scoped_refptr<media::VideoFrame> frame = iter->second; 267 scoped_refptr<media::VideoFrame> frame = iter->second;
268 client->active_buffers.erase(iter); 268 client->active_buffers.erase(iter);
269 269
270 if (frame->format() == media::VideoFrame::NATIVE_TEXTURE) 270 if (frame->format() == media::VideoFrame::NATIVE_TEXTURE)
271 frame->mailbox_holder()->sync_point = sync_point; 271 frame->mailbox_holder()->sync_point = sync_point;
272 272
273 buffer_pool_->RelinquishConsumerHold(buffer_id, 1); 273 buffer_pool_->RelinquishConsumerHold(buffer_id, 1);
274 } 274 }
275 275
276 const media::VideoCaptureFormat& 276 const media::VideoCaptureFormat&
277 VideoCaptureController::GetVideoCaptureFormat() const { 277 VideoCaptureController::GetVideoCaptureFormat() const {
278 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 278 DCHECK_CURRENTLY_ON(BrowserThread::IO);
279 return video_capture_format_; 279 return video_capture_format_;
280 } 280 }
281 281
282 scoped_refptr<media::VideoCaptureDevice::Client::Buffer> 282 scoped_refptr<media::VideoCaptureDevice::Client::Buffer>
283 VideoCaptureController::VideoCaptureDeviceClient::ReserveOutputBuffer( 283 VideoCaptureController::VideoCaptureDeviceClient::ReserveOutputBuffer(
284 media::VideoFrame::Format format, 284 media::VideoFrame::Format format,
285 const gfx::Size& size) { 285 const gfx::Size& size) {
286 return DoReserveOutputBuffer(format, size); 286 return DoReserveOutputBuffer(format, size);
287 } 287 }
288 288
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 VideoCaptureController::~VideoCaptureController() { 527 VideoCaptureController::~VideoCaptureController() {
528 STLDeleteContainerPointers(controller_clients_.begin(), 528 STLDeleteContainerPointers(controller_clients_.begin(),
529 controller_clients_.end()); 529 controller_clients_.end());
530 } 530 }
531 531
532 void VideoCaptureController::DoIncomingCapturedVideoFrameOnIOThread( 532 void VideoCaptureController::DoIncomingCapturedVideoFrameOnIOThread(
533 const scoped_refptr<media::VideoCaptureDevice::Client::Buffer>& buffer, 533 const scoped_refptr<media::VideoCaptureDevice::Client::Buffer>& buffer,
534 const media::VideoCaptureFormat& buffer_format, 534 const media::VideoCaptureFormat& buffer_format,
535 const scoped_refptr<media::VideoFrame>& frame, 535 const scoped_refptr<media::VideoFrame>& frame,
536 base::TimeTicks timestamp) { 536 base::TimeTicks timestamp) {
537 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 537 DCHECK_CURRENTLY_ON(BrowserThread::IO);
538 DCHECK_NE(buffer->id(), VideoCaptureBufferPool::kInvalidId); 538 DCHECK_NE(buffer->id(), VideoCaptureBufferPool::kInvalidId);
539 539
540 int count = 0; 540 int count = 0;
541 if (state_ == VIDEO_CAPTURE_STATE_STARTED) { 541 if (state_ == VIDEO_CAPTURE_STATE_STARTED) {
542 for (ControllerClients::iterator client_it = controller_clients_.begin(); 542 for (ControllerClients::iterator client_it = controller_clients_.begin();
543 client_it != controller_clients_.end(); ++client_it) { 543 client_it != controller_clients_.end(); ++client_it) {
544 ControllerClient* client = *client_it; 544 ControllerClient* client = *client_it;
545 if (client->session_closed) 545 if (client->session_closed)
546 continue; 546 continue;
547 547
(...skipping 23 matching lines...) Expand all
571 .second; 571 .second;
572 DCHECK(inserted) << "Unexpected duplicate buffer: " << buffer->id(); 572 DCHECK(inserted) << "Unexpected duplicate buffer: " << buffer->id();
573 count++; 573 count++;
574 } 574 }
575 } 575 }
576 576
577 buffer_pool_->HoldForConsumers(buffer->id(), count); 577 buffer_pool_->HoldForConsumers(buffer->id(), count);
578 } 578 }
579 579
580 void VideoCaptureController::DoErrorOnIOThread() { 580 void VideoCaptureController::DoErrorOnIOThread() {
581 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 581 DCHECK_CURRENTLY_ON(BrowserThread::IO);
582 state_ = VIDEO_CAPTURE_STATE_ERROR; 582 state_ = VIDEO_CAPTURE_STATE_ERROR;
583 583
584 for (ControllerClients::iterator client_it = controller_clients_.begin(); 584 for (ControllerClients::iterator client_it = controller_clients_.begin();
585 client_it != controller_clients_.end(); ++client_it) { 585 client_it != controller_clients_.end(); ++client_it) {
586 ControllerClient* client = *client_it; 586 ControllerClient* client = *client_it;
587 if (client->session_closed) 587 if (client->session_closed)
588 continue; 588 continue;
589 589
590 client->event_handler->OnError(client->controller_id); 590 client->event_handler->OnError(client->controller_id);
591 } 591 }
592 } 592 }
593 593
594 void VideoCaptureController::DoBufferDestroyedOnIOThread( 594 void VideoCaptureController::DoBufferDestroyedOnIOThread(
595 int buffer_id_to_drop) { 595 int buffer_id_to_drop) {
596 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 596 DCHECK_CURRENTLY_ON(BrowserThread::IO);
597 597
598 for (ControllerClients::iterator client_it = controller_clients_.begin(); 598 for (ControllerClients::iterator client_it = controller_clients_.begin();
599 client_it != controller_clients_.end(); ++client_it) { 599 client_it != controller_clients_.end(); ++client_it) {
600 ControllerClient* client = *client_it; 600 ControllerClient* client = *client_it;
601 if (client->session_closed) 601 if (client->session_closed)
602 continue; 602 continue;
603 603
604 if (client->known_buffers.erase(buffer_id_to_drop)) { 604 if (client->known_buffers.erase(buffer_id_to_drop)) {
605 client->event_handler->OnBufferDestroyed(client->controller_id, 605 client->event_handler->OnBufferDestroyed(client->controller_id,
606 buffer_id_to_drop); 606 buffer_id_to_drop);
(...skipping 23 matching lines...) Expand all
630 for (ControllerClients::const_iterator client_it = clients.begin(); 630 for (ControllerClients::const_iterator client_it = clients.begin();
631 client_it != clients.end(); ++client_it) { 631 client_it != clients.end(); ++client_it) {
632 if ((*client_it)->session_id == session_id) { 632 if ((*client_it)->session_id == session_id) {
633 return *client_it; 633 return *client_it;
634 } 634 }
635 } 635 }
636 return NULL; 636 return NULL;
637 } 637 }
638 638
639 int VideoCaptureController::GetClientCount() { 639 int VideoCaptureController::GetClientCount() {
640 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 640 DCHECK_CURRENTLY_ON(BrowserThread::IO);
641 return controller_clients_.size(); 641 return controller_clients_.size();
642 } 642 }
643 643
644 } // namespace content 644 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/media/midi_dispatcher_host.cc ('k') | content/browser/renderer_host/media/video_capture_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698