Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(636)

Side by Side Diff: media/base/key_systems.h

Issue 1712903002: Remove prefixed EME. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix isRenewalMessage() in browser tests. Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « media/base/key_system_info.h ('k') | media/base/key_systems.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef MEDIA_BASE_KEY_SYSTEMS_H_ 5 #ifndef MEDIA_BASE_KEY_SYSTEMS_H_
6 #define MEDIA_BASE_KEY_SYSTEMS_H_ 6 #define MEDIA_BASE_KEY_SYSTEMS_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <string> 10 #include <string>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/memory/scoped_ptr.h" 13 #include "base/memory/scoped_ptr.h"
14 #include "media/base/eme_constants.h" 14 #include "media/base/eme_constants.h"
15 #include "media/base/media_export.h" 15 #include "media/base/media_export.h"
16 16
17 namespace media { 17 namespace media {
18 18
19 // Provides an interface for querying registered key systems. The exposed API is 19 // Provides an interface for querying registered key systems.
20 // only intended to support unprefixed EME.
21 // 20 //
22 // Many of the original static methods are still available, they should be 21 // Many of the original static methods are still available, they should be
23 // migrated into this interface over time (or removed). 22 // migrated into this interface over time (or removed).
24 // 23 //
25 // TODO(sandersd): Provide GetKeySystem() so that it is not necessary to pass 24 // TODO(sandersd): Provide GetKeySystem() so that it is not necessary to pass
26 // |key_system| to every method. http://crbug.com/457438 25 // |key_system| to every method. http://crbug.com/457438
27 class MEDIA_EXPORT KeySystems { 26 class MEDIA_EXPORT KeySystems {
28 public: 27 public:
29 static KeySystems* GetInstance(); 28 static KeySystems* GetInstance();
30 29
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 const std::string& key_system) const = 0; 63 const std::string& key_system) const = 0;
65 64
66 // Returns the support |key_system| provides for distinctive identifiers. 65 // Returns the support |key_system| provides for distinctive identifiers.
67 virtual EmeFeatureSupport GetDistinctiveIdentifierSupport( 66 virtual EmeFeatureSupport GetDistinctiveIdentifierSupport(
68 const std::string& key_system) const = 0; 67 const std::string& key_system) const = 0;
69 68
70 protected: 69 protected:
71 virtual ~KeySystems() {}; 70 virtual ~KeySystems() {};
72 }; 71 };
73 72
74 // Prefixed EME API only supports prefixed (webkit-) key system name for 73 // TODO(ddorwin): WebContentDecryptionModuleSessionImpl::initializeNewSession()
75 // certain key systems. But internally only unprefixed key systems are 74 // is violating this rule! https://crbug.com/249976.
76 // supported. The following two functions help convert between prefixed and
77 // unprefixed key system names.
78
79 // Gets the unprefixed key system name for |key_system|.
80 MEDIA_EXPORT std::string GetUnprefixedKeySystemName(
81 const std::string& key_system);
82
83 // Gets the prefixed key system name for |key_system|.
84 MEDIA_EXPORT std::string GetPrefixedKeySystemName(
85 const std::string& key_system);
86
87 // Use for prefixed EME only! 75 // Use for prefixed EME only!
88 MEDIA_EXPORT bool IsSupportedKeySystemWithInitDataType( 76 MEDIA_EXPORT bool IsSupportedKeySystemWithInitDataType(
89 const std::string& key_system, 77 const std::string& key_system,
90 EmeInitDataType init_data_type); 78 EmeInitDataType init_data_type);
91 79
92 // Use for prefixed EME only!
93 // Returns whether |key_system| is a real supported key system that can be
94 // instantiated.
95 // Abstract parent |key_system| strings will return false.
96 MEDIA_EXPORT bool PrefixedIsSupportedConcreteKeySystem(
97 const std::string& key_system);
98
99 // Use for prefixed EME only!
100 // Returns whether |key_system| supports the specified media type and codec(s).
101 // To be used with prefixed EME only as it generates UMAs based on the query.
102 MEDIA_EXPORT bool PrefixedIsSupportedKeySystemWithMediaMimeType(
103 const std::string& mime_type,
104 const std::vector<std::string>& codecs,
105 const std::string& key_system);
106
107 // Returns a name for |key_system| suitable to UMA logging. 80 // Returns a name for |key_system| suitable to UMA logging.
108 MEDIA_EXPORT std::string GetKeySystemNameForUMA(const std::string& key_system); 81 MEDIA_EXPORT std::string GetKeySystemNameForUMA(const std::string& key_system);
109 82
110 // Returns whether AesDecryptor can be used for the given |concrete_key_system|. 83 // Returns whether AesDecryptor can be used for the given |concrete_key_system|.
111 MEDIA_EXPORT bool CanUseAesDecryptor(const std::string& concrete_key_system); 84 MEDIA_EXPORT bool CanUseAesDecryptor(const std::string& concrete_key_system);
112 85
113 #if defined(ENABLE_PEPPER_CDMS) 86 #if defined(ENABLE_PEPPER_CDMS)
114 // Returns the Pepper MIME type for |concrete_key_system|. 87 // Returns the Pepper MIME type for |concrete_key_system|.
115 // Returns empty string if |concrete_key_system| is unknown or not Pepper-based. 88 // Returns empty string if |concrete_key_system| is unknown or not Pepper-based.
116 MEDIA_EXPORT std::string GetPepperType( 89 MEDIA_EXPORT std::string GetPepperType(
117 const std::string& concrete_key_system); 90 const std::string& concrete_key_system);
118 #endif 91 #endif
119 92
120 #if defined(UNIT_TEST) 93 #if defined(UNIT_TEST)
121 // Helper functions to add container/codec types for testing purposes. 94 // Helper functions to add container/codec types for testing purposes.
122 MEDIA_EXPORT void AddContainerMask(const std::string& container, uint32_t mask); 95 MEDIA_EXPORT void AddContainerMask(const std::string& container, uint32_t mask);
123 MEDIA_EXPORT void AddCodecMask(EmeMediaType media_type, 96 MEDIA_EXPORT void AddCodecMask(EmeMediaType media_type,
124 const std::string& codec, 97 const std::string& codec,
125 uint32_t mask); 98 uint32_t mask);
126 #endif // defined(UNIT_TEST) 99 #endif // defined(UNIT_TEST)
127 100
128 } // namespace media 101 } // namespace media
129 102
130 #endif // MEDIA_BASE_KEY_SYSTEMS_H_ 103 #endif // MEDIA_BASE_KEY_SYSTEMS_H_
OLDNEW
« no previous file with comments | « media/base/key_system_info.h ('k') | media/base/key_systems.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698