Add CdmWrapper to support multiple CDM versions in CdmAdapter.
CdmWrapper wraps different versions of ContentDecryptionModule interfaces and exposes a common interface to the caller.
BUG=306647
TEST=none
Review URL: https://codereview.chromium.org/26155003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@229571 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/media/cdm/ppapi/cdm_adapter.cc b/media/cdm/ppapi/cdm_adapter.cc
index fb8e5f4..7fcd5f02 100644
--- a/media/cdm/ppapi/cdm_adapter.cc
+++ b/media/cdm/ppapi/cdm_adapter.cc
@@ -212,18 +212,12 @@
callback_factory_.Initialize(this);
}
-CdmAdapter::~CdmAdapter() {
- if (cdm_)
- cdm_->Destroy();
-}
+CdmAdapter::~CdmAdapter() {}
bool CdmAdapter::CreateCdmInstance(const std::string& key_system) {
PP_DCHECK(!cdm_);
- cdm_ = static_cast<cdm::ContentDecryptionModule*>(
- ::CreateCdmInstance(cdm::kCdmInterfaceVersion,
- key_system.data(), key_system.size(),
- GetCdmHost, this));
-
+ cdm_ = make_linked_ptr(CdmWrapper::Create(
+ key_system.data(), key_system.size(), GetCdmHost, this));
return (cdm_ != NULL);
}