OLD | NEW |
| (Empty) |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "media/base/browser_cdm_factory.h" | |
6 | |
7 #include "base/logging.h" | |
8 | |
9 #if defined(OS_ANDROID) | |
10 #include "media/base/android/browser_cdm_factory_android.h" | |
11 #endif | |
12 | |
13 namespace media { | |
14 | |
15 namespace { | |
16 BrowserCdmFactory* g_cdm_factory = NULL; | |
17 } | |
18 | |
19 void SetBrowserCdmFactory(BrowserCdmFactory* factory) { | |
20 DCHECK(!g_cdm_factory); | |
21 g_cdm_factory = factory; | |
22 } | |
23 | |
24 scoped_refptr<MediaKeys> CreateBrowserCdm( | |
25 const std::string& key_system, | |
26 bool use_hw_secure_codecs, | |
27 const SessionMessageCB& session_message_cb, | |
28 const SessionClosedCB& session_closed_cb, | |
29 const LegacySessionErrorCB& legacy_session_error_cb, | |
30 const SessionKeysChangeCB& session_keys_change_cb, | |
31 const SessionExpirationUpdateCB& session_expiration_update_cb) { | |
32 if (!g_cdm_factory) { | |
33 #if defined(OS_ANDROID) | |
34 SetBrowserCdmFactory(new BrowserCdmFactoryAndroid()); | |
35 #else | |
36 LOG(ERROR) << "Cannot create BrowserCdm: no BrowserCdmFactory available!"; | |
37 return nullptr; | |
38 #endif | |
39 } | |
40 | |
41 return g_cdm_factory->CreateBrowserCdm( | |
42 key_system, use_hw_secure_codecs, session_message_cb, session_closed_cb, | |
43 legacy_session_error_cb, session_keys_change_cb, | |
44 session_expiration_update_cb); | |
45 } | |
46 | |
47 } // namespace media | |
OLD | NEW |