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

Unified 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: Fix tests on linux. 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 side-by-side diff with in-line comments
Download patch
Index: ppapi/proxy/ppb_instance_proxy.cc
diff --git a/ppapi/proxy/ppb_instance_proxy.cc b/ppapi/proxy/ppb_instance_proxy.cc
index fb71a93297d9c215dcff599c01c9a5c3bd165eb6..f1c2eccd338d71ca02c424d802c410acb45d7e0e 100644
--- a/ppapi/proxy/ppb_instance_proxy.cc
+++ b/ppapi/proxy/ppb_instance_proxy.cc
@@ -581,10 +581,16 @@ void PPB_Instance_Proxy::DecoderResetDone(PP_Instance instance,
void PPB_Instance_Proxy::DeliverFrame(PP_Instance instance,
PP_Resource decrypted_frame,
const PP_DecryptedFrameInfo* frame_info) {
- Resource* object =
- PpapiGlobals::Get()->GetResourceTracker()->GetResource(decrypted_frame);
- if (!object || object->pp_instance() != instance)
- return;
+ PP_Resource host_resource = 0;
+ if (decrypted_frame != 0) {
+ ResourceTracker* tracker = PpapiGlobals::Get()->GetResourceTracker();
+ Resource* object = tracker->GetResource(decrypted_frame);
+
+ if (!object || object->pp_instance() != instance)
+ return;
+
+ host_resource = object->host_resource().host_resource();
+ }
std::string serialized_block_info;
if (!SerializeBlockInfo(*frame_info, &serialized_block_info))
@@ -593,7 +599,7 @@ void PPB_Instance_Proxy::DeliverFrame(PP_Instance instance,
dispatcher()->Send(new PpapiHostMsg_PPBInstance_DeliverFrame(
API_ID_PPB_INSTANCE,
instance,
- object->host_resource().host_resource(),
+ host_resource,
serialized_block_info));
}
@@ -602,10 +608,16 @@ void PPB_Instance_Proxy::DeliverSamples(
PP_Instance instance,
PP_Resource decrypted_samples,
const PP_DecryptedBlockInfo* block_info) {
- Resource* object =
- PpapiGlobals::Get()->GetResourceTracker()->GetResource(decrypted_samples);
- if (!object || object->pp_instance() != instance)
- return;
+ PP_Resource host_resource = 0;
+ if (decrypted_samples != 0) {
+ ResourceTracker* tracker = PpapiGlobals::Get()->GetResourceTracker();
+ Resource* object = tracker->GetResource(decrypted_samples);
+
+ if (!object || object->pp_instance() != instance)
+ return;
+
+ host_resource = object->host_resource().host_resource();
+ }
std::string serialized_block_info;
if (!SerializeBlockInfo(*block_info, &serialized_block_info))
@@ -615,7 +627,7 @@ void PPB_Instance_Proxy::DeliverSamples(
new PpapiHostMsg_PPBInstance_DeliverSamples(
API_ID_PPB_INSTANCE,
instance,
- object->host_resource().host_resource(),
+ host_resource,
serialized_block_info));
}

Powered by Google App Engine
This is Rietveld 408576698