Index: chromecast/media/cdm/browser_cdm_cast.cc |
diff --git a/chromecast/media/cdm/browser_cdm_cast.cc b/chromecast/media/cdm/browser_cdm_cast.cc |
index 9e7042d3f107cb41157b23387b9bf08a43971ce5..f6a845d7515c6cb51701a2a04036e447175f9d82 100644 |
--- a/chromecast/media/cdm/browser_cdm_cast.cc |
+++ b/chromecast/media/cdm/browser_cdm_cast.cc |
@@ -126,17 +126,25 @@ void BrowserCdmCast::OnSessionClosed(const std::string& session_id) { |
session_closed_cb_.Run(session_id); |
} |
-void BrowserCdmCast::OnSessionKeysChange( |
- const std::string& session_id, |
- const ::media::KeyIdAndKeyPairs& keys) { |
- ::media::CdmKeysInfo cdm_keys_info; |
+void BrowserCdmCast::OnSessionKeysChange(const std::string& session_id, |
+ bool newly_usable_keys, |
+ ::media::CdmKeysInfo keys_info) { |
+ session_keys_change_cb_.Run(session_id, newly_usable_keys, keys_info.Pass()); |
+ |
+ if (newly_usable_keys) |
+ player_tracker_impl_->NotifyNewKey(); |
+} |
+ |
+void BrowserCdmCast::KeyIdAndKeyPairsToInfo( |
+ const ::media::KeyIdAndKeyPairs& keys, |
+ ::media::CdmKeysInfo* keys_info) { |
+ DCHECK(keys_info); |
for (const std::pair<std::string, std::string>& key : keys) { |
- cdm_keys_info.push_back(new ::media::CdmKeyInformation( |
- key.first, ::media::CdmKeyInformation::USABLE, 0)); |
+ scoped_ptr<::media::CdmKeyInformation> cdm_key_information( |
+ new ::media::CdmKeyInformation(key.first, |
+ ::media::CdmKeyInformation::USABLE, 0)); |
+ keys_info->push_back(cdm_key_information.release()); |
} |
- session_keys_change_cb_.Run(session_id, true, cdm_keys_info.Pass()); |
- |
- player_tracker_impl_->NotifyNewKey(); |
} |
// A macro runs current member function on |task_runner_| thread. |