Index: media/base/android/android_cdm_factory.cc |
diff --git a/media/base/android/android_cdm_factory.cc b/media/base/android/android_cdm_factory.cc |
index 08a43b852a4e1cf8a50af3ee816b92fc7010edf8..c7d111afb2b8d8214be90cb465c13c5c3a9b1f2e 100644 |
--- a/media/base/android/android_cdm_factory.cc |
+++ b/media/base/android/android_cdm_factory.cc |
@@ -18,6 +18,24 @@ |
#include "url/gurl.h" |
namespace media { |
+namespace { |
+void OnCdmCreated(const std::string& key_system, |
+ MediaDrmBridge::SecurityLevel security_level, |
+ const CdmCreatedCB& bound_cdm_created_cb, |
+ scoped_refptr<MediaDrmBridge> cdm) { |
+ if (!cdm) { |
+ std::string error_message = "MediaDrmBridge cannot be created for " + |
+ key_system + " with security level " + |
+ base::IntToString(security_level); |
+ LOG(ERROR) << error_message; |
+ bound_cdm_created_cb.Run(nullptr, error_message); |
+ return; |
+ } |
+ |
+ // Success! |
+ bound_cdm_created_cb.Run(cdm, ""); |
+} |
+} // namespace |
AndroidCdmFactory::AndroidCdmFactory(const CreateFetcherCB& create_fetcher_cb, |
const CreateStorageCB& create_storage_cb) |
@@ -80,20 +98,12 @@ void AndroidCdmFactory::Create( |
return; |
} |
- scoped_refptr<MediaDrmBridge> cdm(MediaDrmBridge::Create( |
- key_system, security_origin, security_level, create_fetcher_cb_, |
- create_storage_cb_, session_message_cb, session_closed_cb, |
- session_keys_change_cb, session_expiration_update_cb)); |
- if (!cdm) { |
- error_message = "MediaDrmBridge cannot be created for " + key_system + |
- " with security level " + base::IntToString(security_level); |
- LOG(ERROR) << error_message; |
- bound_cdm_created_cb.Run(nullptr, error_message); |
- return; |
- } |
- |
- // Success! |
- bound_cdm_created_cb.Run(cdm, ""); |
+ MediaDrmBridge::Create(key_system, security_origin, security_level, |
+ create_fetcher_cb_, create_storage_cb_, |
+ session_message_cb, session_closed_cb, |
+ session_keys_change_cb, session_expiration_update_cb, |
+ base::BindOnce(&OnCdmCreated, key_system, |
+ security_level, bound_cdm_created_cb)); |
xhwang
2017/05/03 06:00:55
nit: no need to use bound_cdm_created_cb here sinc
yucliu1
2017/05/03 06:33:49
The callback should be bound in some cases, e.g. o
yucliu1
2017/05/10 20:41:38
After looking at the logic inside MediaDrmBridge,
|
} |
} // namespace media |