// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef MEDIA_BASE_KEY_SYSTEMS_H_ #define MEDIA_BASE_KEY_SYSTEMS_H_ #include <stdint.h> #include <optional> #include <string> #include <vector> #include "base/functional/callback.h" #include "media/base/eme_constants.h" #include "media/base/encryption_scheme.h" #include "media/base/media_export.h" namespace media { // Provides an interface for querying registered key systems. // // Many of the original static methods are still available, they should be // migrated into this interface over time (or removed). class MEDIA_EXPORT KeySystems { … }; // Returns a name for `key_system` for UMA logging. When `use_hw_secure_codecs` // is specified (non-nullopt), names with robustness will be returned for // supported key systems. MEDIA_EXPORT std::string GetKeySystemNameForUMA( const std::string& key_system, std::optional<bool> use_hw_secure_codecs = std::nullopt); // Returns an int mapping to `key_system` suitable for UKM reporting. CdmConfig // is not needed here because we can report CdmConfig fields in UKM directly. MEDIA_EXPORT int GetKeySystemIntForUKM(const std::string& key_system); } // namespace media #endif // MEDIA_BASE_KEY_SYSTEMS_H_