blob: 4cc83a9065d9a64bebe30b04eaa2e2ec1c268e00 [file] [log] [blame]
// Copyright 2023 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_CDM_CLEAR_KEY_CDM_COMMON_H_
#define MEDIA_CDM_CLEAR_KEY_CDM_COMMON_H_
#include "build/build_config.h"
#include "media/cdm/cdm_type.h"
#include "media/media_buildflags.h"
namespace media {
// Clear Key key system defined in the EME spec.
inline constexpr char kClearKeyKeySystem[] = "org.w3.clearkey";
#if BUILDFLAG(IS_ANDROID)
inline const uint8_t kClearKeyUuid[16] = {
0xE2, 0x71, 0x9D, 0x58, 0xA9, 0x85, 0xB3, 0xC9, //
0x78, 0x1A, 0xB0, 0X30, 0xAF, 0x78, 0xD3, 0x0E //
};
#endif
// External Clear Key key system ("org.chromium.externalclearkey" and variants)
// only for testing.
inline constexpr char kExternalClearKeyKeySystem[] =
"org.chromium.externalclearkey";
// Variants of External Clear Key key system to test different scenarios.
// To add a new variant, make sure you also update:
// - media/test/data/eme_player_js/globals.js
// - media/test/data/eme_player_js/player_utils.js
// - CreateCdmInstance() in clear_key_cdm.cc
// MediaFoundation Clear Key key system only for testing.
inline constexpr char kMediaFoundationClearKeyKeySystem[] =
"org.chromium.externalclearkey.mediafoundation";
inline constexpr wchar_t kMediaFoundationClearKeyKeySystemWideString[] =
L"org.chromium.externalclearkey.mediafoundation";
// A sub key system that is invalid for testing purpose.
inline constexpr char kExternalClearKeyInvalidKeySystem[] =
"org.chromium.externalclearkey.invalid";
// A sub key system that supports decrypt-only mode.
inline constexpr char kExternalClearKeyDecryptOnlyKeySystem[] =
"org.chromium.externalclearkey.decryptonly";
// A sub key system that triggers various types of messages.
inline constexpr char kExternalClearKeyMessageTypeTestKeySystem[] =
"org.chromium.externalclearkey.messagetypetest";
// A sub key system that triggers the FileIO test.
inline constexpr char kExternalClearKeyFileIOTestKeySystem[] =
"org.chromium.externalclearkey.fileiotest";
// A sub key system that triggers the output protection test.
inline constexpr char kExternalClearKeyOutputProtectionTestKeySystem[] =
"org.chromium.externalclearkey.outputprotectiontest";
// A sub key system that triggers the platform verification test.
inline constexpr char kExternalClearKeyPlatformVerificationTestKeySystem[] =
"org.chromium.externalclearkey.platformverificationtest";
// A sub key system that triggers a crash.
inline constexpr char kExternalClearKeyCrashKeySystem[] =
"org.chromium.externalclearkey.crash";
// A sub key system that triggers the verify host files test.
inline constexpr char kExternalClearKeyVerifyCdmHostTestKeySystem[] =
"org.chromium.externalclearkey.verifycdmhosttest";
// A sub key system that fetches the Storage ID.
inline constexpr char kExternalClearKeyStorageIdTestKeySystem[] =
"org.chromium.externalclearkey.storageidtest";
// A sub key system that is registered with a different CDM type.
inline constexpr char kExternalClearKeyDifferentCdmTypeTestKeySystem[] =
"org.chromium.externalclearkey.differentcdmtype";
#if BUILDFLAG(ENABLE_LIBRARY_CDMS)
// Name of the ClearKey CDM library.
inline constexpr char kClearKeyCdmLibraryName[] = "clearkeycdm";
inline constexpr char kClearKeyCdmBaseDirectory[] =
#if BUILDFLAG(IS_FUCHSIA)
"lib/"
#endif
"ClearKeyCdm";
// Display name for Clear Key CDM.
inline constexpr char kClearKeyCdmDisplayName[] = "Clear Key CDM";
#endif // BUILDFLAG(ENABLE_LIBRARY_CDMS)
#if BUILDFLAG(IS_WIN)
// Name of the MediaFoundation ClearKey CDM library.
inline constexpr char kMediaFoundationClearKeyCdmLibraryName[] =
"MediaFoundation.ClearKey.CDM";
// Display name for MediaFoundation Clear Key CDM.
inline constexpr char kMediaFoundationClearKeyCdmDisplayName[] =
"Media Foundation Clear Key CDM";
#endif // BUILDFLAG(IS_WIN)
// The default GUID for Clear Key Cdm.
const CdmType kClearKeyCdmType{0x3a2e0fadde4bd1b7ull, 0xcb90df3e240d1694ull};
// A different GUID for Clear Key Cdm for testing running different types of
// CDMs in the system.
const CdmType kClearKeyCdmDifferentCdmType{0xc3914773474bdb02ull,
0x8e8de4d84d3ca030ull};
#if BUILDFLAG(IS_WIN)
// The default GUID for MediaFoundation Clear Key Cdm.
const CdmType kMediaFoundationClearKeyCdmType{0xbec8776b734d80faull,
0xdff8375bb3cb3df8ull};
#endif // BUILDFLAG(IS_WIN)
} // namespace media
#endif // MEDIA_CDM_CLEAR_KEY_CDM_COMMON_H_