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

Side by Side Diff: ppapi/proxy/ppb_video_capture_proxy.cc

Issue 8344025: Add a new globals object for PPAPI tracking information. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 2 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
« no previous file with comments | « ppapi/proxy/ppb_var_proxy.cc ('k') | ppapi/proxy/ppp_instance_private_proxy_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "ppapi/proxy/ppb_video_capture_proxy.h" 5 #include "ppapi/proxy/ppb_video_capture_proxy.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "build/build_config.h" 10 #include "build/build_config.h"
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 IPC_END_MESSAGE_MAP() 366 IPC_END_MESSAGE_MAP()
367 // TODO(brettw) handle bad messages! 367 // TODO(brettw) handle bad messages!
368 return handled; 368 return handled;
369 } 369 }
370 370
371 void PPP_VideoCapture_Proxy::OnMsgOnDeviceInfo( 371 void PPP_VideoCapture_Proxy::OnMsgOnDeviceInfo(
372 const HostResource& host_resource, 372 const HostResource& host_resource,
373 const PP_VideoCaptureDeviceInfo_Dev& info, 373 const PP_VideoCaptureDeviceInfo_Dev& info,
374 const std::vector<PPPVideoCapture_Buffer>& buffers) { 374 const std::vector<PPPVideoCapture_Buffer>& buffers) {
375 EnterPluginFromHostResource<PPB_VideoCapture_API> enter(host_resource); 375 EnterPluginFromHostResource<PPB_VideoCapture_API> enter(host_resource);
376 PluginResourceTracker* tracker = PluginResourceTracker::GetInstance(); 376 if (enter.failed() || !ppp_video_capture_impl_)
377 PP_Resource resource = tracker->PluginResourceForHostResource(host_resource);
378 if (!resource || !ppp_video_capture_impl_ || enter.failed())
379 return; 377 return;
380 378
379 PluginResourceTracker* tracker =
380 PluginGlobals::Get()->plugin_resource_tracker();
381 scoped_array<PP_Resource> resources(new PP_Resource[buffers.size()]); 381 scoped_array<PP_Resource> resources(new PP_Resource[buffers.size()]);
382 for (size_t i = 0; i < buffers.size(); ++i) { 382 for (size_t i = 0; i < buffers.size(); ++i) {
383 // We assume that the browser created a new set of resources. 383 // We assume that the browser created a new set of resources.
384 DCHECK(!tracker->PluginResourceForHostResource(buffers[i].resource)); 384 DCHECK(!tracker->PluginResourceForHostResource(buffers[i].resource));
385 resources[i] = PPB_Buffer_Proxy::AddProxyResource(buffers[i].resource, 385 resources[i] = PPB_Buffer_Proxy::AddProxyResource(buffers[i].resource,
386 buffers[i].handle, 386 buffers[i].handle,
387 buffers[i].size); 387 buffers[i].size);
388 } 388 }
389 static_cast<VideoCapture*>(enter.object())->SetBufferCount(buffers.size()); 389
390 VideoCapture* capture = static_cast<VideoCapture*>(enter.object());
391 capture->SetBufferCount(buffers.size());
390 ppp_video_capture_impl_->OnDeviceInfo( 392 ppp_video_capture_impl_->OnDeviceInfo(
391 host_resource.instance(), 393 host_resource.instance(),
392 resource, 394 capture->pp_resource(),
393 &info, 395 &info,
394 buffers.size(), 396 buffers.size(),
395 resources.get()); 397 resources.get());
396 for (size_t i = 0; i < buffers.size(); ++i) 398 for (size_t i = 0; i < buffers.size(); ++i)
397 tracker->ReleaseResource(resources[i]); 399 tracker->ReleaseResource(resources[i]);
398 } 400 }
399 401
400 void PPP_VideoCapture_Proxy::OnMsgOnStatus(const HostResource& host_resource, 402 void PPP_VideoCapture_Proxy::OnMsgOnStatus(const HostResource& host_resource,
401 uint32_t status) { 403 uint32_t status) {
402 EnterPluginFromHostResource<PPB_VideoCapture_API> enter(host_resource); 404 EnterPluginFromHostResource<PPB_VideoCapture_API> enter(host_resource);
403 PluginResourceTracker* tracker = PluginResourceTracker::GetInstance(); 405 if (enter.failed() || !ppp_video_capture_impl_)
404 PP_Resource resource = tracker->PluginResourceForHostResource(host_resource);
405 if (!resource || !ppp_video_capture_impl_ || enter.failed())
406 return; 406 return;
407 407
408 if (!static_cast<VideoCapture*>(enter.object())->OnStatus(status)) 408 VideoCapture* capture = static_cast<VideoCapture*>(enter.object());
409 if (!capture->OnStatus(status))
409 return; 410 return;
410 ppp_video_capture_impl_->OnStatus( 411 ppp_video_capture_impl_->OnStatus(
411 host_resource.instance(), resource, status); 412 host_resource.instance(), capture->pp_resource(), status);
412 } 413 }
413 414
414 void PPP_VideoCapture_Proxy::OnMsgOnError(const HostResource& host_resource, 415 void PPP_VideoCapture_Proxy::OnMsgOnError(const HostResource& host_resource,
415 uint32_t error_code) { 416 uint32_t error_code) {
416 EnterPluginFromHostResource<PPB_VideoCapture_API> enter(host_resource); 417 EnterPluginFromHostResource<PPB_VideoCapture_API> enter(host_resource);
417 PluginResourceTracker* tracker = PluginResourceTracker::GetInstance(); 418 if (enter.failed() || !ppp_video_capture_impl_)
418 PP_Resource resource = tracker->PluginResourceForHostResource(host_resource);
419 if (!resource || !ppp_video_capture_impl_ || enter.failed())
420 return; 419 return;
421 static_cast<VideoCapture*>(enter.object())->set_status( 420
422 PP_VIDEO_CAPTURE_STATUS_STOPPED); 421 VideoCapture* capture = static_cast<VideoCapture*>(enter.object());
422 capture->set_status(PP_VIDEO_CAPTURE_STATUS_STOPPED);
423 ppp_video_capture_impl_->OnError( 423 ppp_video_capture_impl_->OnError(
424 host_resource.instance(), resource, error_code); 424 host_resource.instance(), capture->pp_resource(), error_code);
425 } 425 }
426 426
427 void PPP_VideoCapture_Proxy::OnMsgOnBufferReady( 427 void PPP_VideoCapture_Proxy::OnMsgOnBufferReady(
428 const HostResource& host_resource, uint32_t buffer) { 428 const HostResource& host_resource, uint32_t buffer) {
429 EnterPluginFromHostResource<PPB_VideoCapture_API> enter(host_resource); 429 EnterPluginFromHostResource<PPB_VideoCapture_API> enter(host_resource);
430 PluginResourceTracker* tracker = PluginResourceTracker::GetInstance(); 430 if (enter.failed() || !ppp_video_capture_impl_)
431 PP_Resource resource = tracker->PluginResourceForHostResource(host_resource);
432 if (!resource || !ppp_video_capture_impl_ || enter.failed())
433 return; 431 return;
434 static_cast<VideoCapture*>(enter.object())->SetBufferInUse(buffer); 432
433 VideoCapture* capture = static_cast<VideoCapture*>(enter.object());
434 capture->SetBufferInUse(buffer);
435 ppp_video_capture_impl_->OnBufferReady( 435 ppp_video_capture_impl_->OnBufferReady(
436 host_resource.instance(), resource, buffer); 436 host_resource.instance(), capture->pp_resource(), buffer);
437 } 437 }
438 438
439 } // namespace proxy 439 } // namespace proxy
440 } // namespace ppapi 440 } // namespace ppapi
OLDNEW
« no previous file with comments | « ppapi/proxy/ppb_var_proxy.cc ('k') | ppapi/proxy/ppp_instance_private_proxy_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698