| Index: chromecast/browser/media/cast_browser_cdm_factory.cc
|
| diff --git a/chromecast/browser/media/cast_browser_cdm_factory.cc b/chromecast/browser/media/cast_browser_cdm_factory.cc
|
| index 6b6dfffb469c89f7c3a48b886106b6897df19e86..2dbb544f86a62a83cbb8beda4a1c5feb81d8ad43 100644
|
| --- a/chromecast/browser/media/cast_browser_cdm_factory.cc
|
| +++ b/chromecast/browser/media/cast_browser_cdm_factory.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "chromecast/browser/media/cast_browser_cdm_factory.h"
|
|
|
| +#include "chromecast/media/cdm/browser_cdm_cast.h"
|
| +
|
| namespace chromecast {
|
| namespace media {
|
|
|
| @@ -16,17 +18,20 @@ scoped_ptr< ::media::BrowserCdm> CastBrowserCdmFactory::CreateBrowserCdm(
|
| const ::media::SessionExpirationUpdateCB& session_expiration_update_cb) {
|
| CastKeySystem key_system(GetKeySystemByName(key_system_name));
|
|
|
| - // TODO(gunsch): handle ClearKey decryption. See crbug.com/441957
|
| -
|
| - scoped_ptr< ::media::BrowserCdm> platform_cdm(
|
| - CreatePlatformBrowserCdm(key_system,
|
| - session_message_cb,
|
| - session_closed_cb,
|
| - session_error_cb,
|
| - session_keys_change_cb,
|
| - session_expiration_update_cb));
|
| - if (platform_cdm) {
|
| - return platform_cdm.Pass();
|
| + scoped_ptr<chromecast::media::BrowserCdmCast> browser_cdm;
|
| + if (key_system == chromecast::media::KEY_SYSTEM_CLEAR_KEY) {
|
| + // TODO(gunsch): handle ClearKey decryption. See crbug.com/441957
|
| + } else {
|
| + browser_cdm = CreatePlatformBrowserCdm(key_system);
|
| + }
|
| +
|
| + if (browser_cdm) {
|
| + browser_cdm->SetCallbacks(session_message_cb,
|
| + session_closed_cb,
|
| + session_error_cb,
|
| + session_keys_change_cb,
|
| + session_expiration_update_cb);
|
| + return browser_cdm.Pass();
|
| }
|
|
|
| LOG(INFO) << "No matching key system found.";
|
|
|