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

Unified Diff: webkit/media/crypto/ppapi/cdm_wrapper.cc

Issue 12212079: Update Cdm Wrapper and ClearKeyCdm to work with CDM interface version 4. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Roll DEPS Created 7 years, 10 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: webkit/media/crypto/ppapi/cdm_wrapper.cc
diff --git a/webkit/media/crypto/ppapi/cdm_wrapper.cc b/webkit/media/crypto/ppapi/cdm_wrapper.cc
index 4385f51f1356786f9d2d5396bb70a3164ee09673..facb9267e9087aa1a5546fa48adfa197b553ca47 100644
--- a/webkit/media/crypto/ppapi/cdm_wrapper.cc
+++ b/webkit/media/crypto/ppapi/cdm_wrapper.cc
@@ -478,6 +478,7 @@ class AudioFramesImpl : public cdm::AudioFrames {
// Content Decryption Module (CDM).
class CdmWrapper : public pp::Instance,
public pp::ContentDecryptor_Private,
+ public cdm::HostFactory,
public cdm::Host {
public:
CdmWrapper(PP_Instance instance, pp::Module* module);
@@ -516,6 +517,9 @@ class CdmWrapper : public pp::Instance,
pp::Buffer_Dev encrypted_buffer,
const PP_EncryptedBlockInfo& encrypted_block_info) OVERRIDE;
+ // cdm::HostFactory implementation.
+ virtual void* GetCdmHost(const char* host_version) OVERRIDE;
+
// cdm::Host implementation.
virtual void SetTimer(int64_t delay_ms, void* context) OVERRIDE;
virtual double GetCurrentWallTimeInSeconds() OVERRIDE;
@@ -527,6 +531,8 @@ class CdmWrapper : public pp::Instance,
int32_t session_id_length,
cdm::MediaKeyError error_code,
uint32_t system_code) OVERRIDE;
+ virtual void GetPrivateData(int32_t* instance,
+ GetPrivateInterface* get_interface) OVERRIDE;
private:
struct SessionInfo {
@@ -859,6 +865,12 @@ void CdmWrapper::DecryptAndDecode(
}
}
+void* CdmWrapper::GetCdmHost(const char* host_version) {
+ if (strcmp(host_version, CDM_HOST_INTERFACE) == 0)
+ return static_cast<cdm::Host*>(this);
+ return NULL;
+}
+
void CdmWrapper::SetTimer(int64_t delay_ms, void* context) {
// NOTE: doesn't really need to run on the main thread; could just as well run
// on a helper thread if |cdm_| were thread-friendly and care was taken. We
@@ -901,12 +913,17 @@ void CdmWrapper::SendKeyError(const char* session_id,
system_code);
}
+void CdmWrapper::GetPrivateData(int32_t* instance,
+ cdm::Host::GetPrivateInterface* get_interface) {
+ *instance = pp_instance();
+ *get_interface = pp::Module::Get()->get_browser_interface();
+}
+
void CdmWrapper::SendUnknownKeyError(const std::string& key_system,
const std::string& session_id) {
SendKeyErrorInternal(key_system, session_id, cdm::kUnknownError, 0);
}
-
void CdmWrapper::SendKeyAdded(const std::string& key_system,
const std::string& session_id) {
PostOnMain(callback_factory_.NewCallback(

Powered by Google App Engine
This is Rietveld 408576698