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

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

Issue 10899021: Add CDM video decoder. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments addressed. Created 8 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 | « no previous file | ppapi/proxy/ppp_content_decryptor_private_proxy.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) 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 "ppapi/proxy/ppb_instance_proxy.h" 5 #include "ppapi/proxy/ppb_instance_proxy.h"
6 6
7 #include "build/build_config.h" 7 #include "build/build_config.h"
8 #include "ppapi/c/pp_errors.h" 8 #include "ppapi/c/pp_errors.h"
9 #include "ppapi/c/pp_time.h" 9 #include "ppapi/c/pp_time.h"
10 #include "ppapi/c/pp_var.h" 10 #include "ppapi/c/pp_var.h"
(...skipping 567 matching lines...) Expand 10 before | Expand all | Expand 10 after
578 API_ID_PPB_INSTANCE, 578 API_ID_PPB_INSTANCE,
579 instance, 579 instance,
580 decoder_type, 580 decoder_type,
581 request_id)); 581 request_id));
582 } 582 }
583 583
584 // TODO(tomfinegan): Handle null decrypted_frame after landing other patches. 584 // TODO(tomfinegan): Handle null decrypted_frame after landing other patches.
585 void PPB_Instance_Proxy::DeliverFrame(PP_Instance instance, 585 void PPB_Instance_Proxy::DeliverFrame(PP_Instance instance,
586 PP_Resource decrypted_frame, 586 PP_Resource decrypted_frame,
587 const PP_DecryptedFrameInfo* frame_info) { 587 const PP_DecryptedFrameInfo* frame_info) {
588 Resource* object = 588 PP_Resource host_resource = 0;
589 PpapiGlobals::Get()->GetResourceTracker()->GetResource(decrypted_frame); 589 if (decrypted_frame != 0) {
590 if (!object || object->pp_instance() != instance) 590 ResourceTracker* tracker = PpapiGlobals::Get()->GetResourceTracker();
591 return; 591 Resource* object = tracker->GetResource(decrypted_frame);
592
593 if (!object || object->pp_instance() != instance)
594 return;
595
596 host_resource = object->host_resource().host_resource();
597 }
592 598
593 std::string serialized_block_info; 599 std::string serialized_block_info;
594 if (!SerializeBlockInfo(*frame_info, &serialized_block_info)) 600 if (!SerializeBlockInfo(*frame_info, &serialized_block_info))
595 return; 601 return;
596 602
597 dispatcher()->Send(new PpapiHostMsg_PPBInstance_DeliverFrame( 603 dispatcher()->Send(new PpapiHostMsg_PPBInstance_DeliverFrame(
598 API_ID_PPB_INSTANCE, 604 API_ID_PPB_INSTANCE,
599 instance, 605 instance,
600 object->host_resource().host_resource(), 606 host_resource,
601 serialized_block_info)); 607 serialized_block_info));
602 } 608 }
603 609
604 // TODO(tomfinegan): Handle null audio_frames after landing other patches. 610 // TODO(tomfinegan): Handle null audio_frames after landing other patches.
605 void PPB_Instance_Proxy::DeliverSamples( 611 void PPB_Instance_Proxy::DeliverSamples(
606 PP_Instance instance, 612 PP_Instance instance,
607 PP_Resource audio_frames, 613 PP_Resource decrypted_samples,
608 const PP_DecryptedBlockInfo* block_info) { 614 const PP_DecryptedBlockInfo* block_info) {
609 Resource* object = 615 PP_Resource host_resource = 0;
610 PpapiGlobals::Get()->GetResourceTracker()->GetResource(audio_frames); 616 if (decrypted_samples != 0) {
611 if (!object || object->pp_instance() != instance) 617 ResourceTracker* tracker = PpapiGlobals::Get()->GetResourceTracker();
612 return; 618 Resource* object = tracker->GetResource(decrypted_samples);
619
620 if (!object || object->pp_instance() != instance)
621 return;
622
623 host_resource = object->host_resource().host_resource();
624 }
613 625
614 std::string serialized_block_info; 626 std::string serialized_block_info;
615 if (!SerializeBlockInfo(*block_info, &serialized_block_info)) 627 if (!SerializeBlockInfo(*block_info, &serialized_block_info))
616 return; 628 return;
617 629
618 dispatcher()->Send( 630 dispatcher()->Send(
619 new PpapiHostMsg_PPBInstance_DeliverSamples( 631 new PpapiHostMsg_PPBInstance_DeliverSamples(
620 API_ID_PPB_INSTANCE, 632 API_ID_PPB_INSTANCE,
621 instance, 633 instance,
622 object->host_resource().host_resource(), 634 host_resource,
623 serialized_block_info)); 635 serialized_block_info));
624 } 636 }
625 #endif // !defined(OS_NACL) 637 #endif // !defined(OS_NACL)
626 638
627 void PPB_Instance_Proxy::PostMessage(PP_Instance instance, 639 void PPB_Instance_Proxy::PostMessage(PP_Instance instance,
628 PP_Var message) { 640 PP_Var message) {
629 dispatcher()->Send(new PpapiHostMsg_PPBInstance_PostMessage( 641 dispatcher()->Send(new PpapiHostMsg_PPBInstance_PostMessage(
630 API_ID_PPB_INSTANCE, 642 API_ID_PPB_INSTANCE,
631 instance, SerializedVarSendInput(dispatcher(), message))); 643 instance, SerializedVarSendInput(dispatcher(), message)));
632 } 644 }
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after
1136 PP_Instance instance) { 1148 PP_Instance instance) {
1137 InstanceData* data = static_cast<PluginDispatcher*>(dispatcher())-> 1149 InstanceData* data = static_cast<PluginDispatcher*>(dispatcher())->
1138 GetInstanceData(instance); 1150 GetInstanceData(instance);
1139 if (!data) 1151 if (!data)
1140 return; // Instance was probably deleted. 1152 return; // Instance was probably deleted.
1141 data->should_do_request_surrounding_text = false; 1153 data->should_do_request_surrounding_text = false;
1142 } 1154 }
1143 1155
1144 } // namespace proxy 1156 } // namespace proxy
1145 } // namespace ppapi 1157 } // namespace ppapi
OLDNEW
« no previous file with comments | « no previous file | ppapi/proxy/ppp_content_decryptor_private_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698