Source release 17.1.0
This commit is contained in:
@@ -1,54 +1,71 @@
|
||||
// Copyright 2018 Google LLC. All Rights Reserved. This file and proprietary
|
||||
// source code may only be used and distributed under the Widevine Master
|
||||
// License Agreement.
|
||||
// source code may only be used and distributed under the Widevine License
|
||||
// Agreement.
|
||||
|
||||
#ifndef WVCDM_CORE_WV_CDM_CONSTANTS_H_
|
||||
#define WVCDM_CORE_WV_CDM_CONSTANTS_H_
|
||||
|
||||
#include <limits>
|
||||
#include <string>
|
||||
|
||||
namespace wvcdm {
|
||||
static const size_t KEY_CONTROL_SIZE = 16;
|
||||
static const size_t KEY_ID_SIZE = 16;
|
||||
static const size_t KEY_IV_SIZE = 16;
|
||||
static const size_t KEY_PAD_SIZE = 16;
|
||||
static const size_t CONTENT_KEY_SIZE = 16;
|
||||
static const size_t SERVICE_KEY_SIZE = 16;
|
||||
static const size_t MAC_KEY_SIZE = 32;
|
||||
static const size_t KEYBOX_KEY_DATA_SIZE = 72;
|
||||
static const size_t SRM_REQUIREMENT_SIZE = 12;
|
||||
constexpr size_t KEY_CONTROL_SIZE = 16;
|
||||
constexpr size_t KEY_ID_SIZE = 16;
|
||||
constexpr size_t KEY_IV_SIZE = 16;
|
||||
constexpr size_t KEY_PAD_SIZE = 16;
|
||||
constexpr size_t CONTENT_KEY_SIZE = 16;
|
||||
constexpr size_t SERVICE_KEY_SIZE = 16;
|
||||
constexpr size_t MAC_KEY_SIZE = 32;
|
||||
constexpr size_t ENTITLEMENT_KEY_SIZE = 32;
|
||||
constexpr size_t KEYBOX_KEY_DATA_SIZE = 72;
|
||||
constexpr size_t SRM_REQUIREMENT_SIZE = 12;
|
||||
|
||||
constexpr size_t LICENSE_PROTOCOL_2_1_PADDING = 16;
|
||||
|
||||
// Initial estimate of certificate size. Code that
|
||||
// uses this estimate should be able to adapt to a larger or smaller size.
|
||||
static const size_t CERTIFICATE_DATA_SIZE = 4 * 1024;
|
||||
constexpr size_t CERTIFICATE_DATA_SIZE = 4 * 1024;
|
||||
|
||||
// Use 0 to represent never expired license as specified in EME spec
|
||||
// (NaN in JS translates to 0 in unix timestamp).
|
||||
static const int64_t NEVER_EXPIRES = 0;
|
||||
static const int64_t UNLIMITED_DURATION = 0;
|
||||
constexpr int64_t NEVER_EXPIRES = 0;
|
||||
constexpr int64_t UNLIMITED_DURATION = 0;
|
||||
constexpr int64_t INVALID_TIME = -1;
|
||||
|
||||
// Not a valid system ID. Used as a placeholder for systems without an ID.
|
||||
// Will not be accepted for DRM provisioning requests or license requests.
|
||||
static constexpr uint32_t NULL_SYSTEM_ID =
|
||||
static_cast<uint32_t>(std::numeric_limits<int>::max());
|
||||
|
||||
// This is the lower limit. For OEMCrypto v16+ one can query and find how many
|
||||
// are supported
|
||||
static constexpr size_t kMinimumUsageTableEntriesSupported = 200;
|
||||
constexpr size_t kMinimumUsageTableEntriesSupported = 200;
|
||||
|
||||
// Resource rating tiers
|
||||
static const uint32_t RESOURCE_RATING_TIER_LOW = 1u;
|
||||
static const uint32_t RESOURCE_RATING_TIER_MEDIUM = 2u;
|
||||
static const uint32_t RESOURCE_RATING_TIER_HIGH = 3u;
|
||||
static const uint32_t RESOURCE_RATING_TIER_VERY_HIGH = 4u;
|
||||
static const uint32_t RESOURCE_RATING_TIER_MIN = RESOURCE_RATING_TIER_LOW;
|
||||
static const uint32_t RESOURCE_RATING_TIER_MAX = RESOURCE_RATING_TIER_VERY_HIGH;
|
||||
constexpr uint32_t RESOURCE_RATING_TIER_LOW = 1u;
|
||||
constexpr uint32_t RESOURCE_RATING_TIER_MEDIUM = 2u;
|
||||
constexpr uint32_t RESOURCE_RATING_TIER_HIGH = 3u;
|
||||
constexpr uint32_t RESOURCE_RATING_TIER_VERY_HIGH = 4u;
|
||||
constexpr uint32_t RESOURCE_RATING_TIER_MIN = RESOURCE_RATING_TIER_LOW;
|
||||
constexpr uint32_t RESOURCE_RATING_TIER_MAX = RESOURCE_RATING_TIER_VERY_HIGH;
|
||||
|
||||
// OEMCrypto features by version
|
||||
static const uint32_t OEM_CRYPTO_API_VERSION_SUPPORTS_RESOURCE_RATING_TIER = 15;
|
||||
constexpr uint32_t OEM_CRYPTO_API_VERSION_SUPPORTS_RESOURCE_RATING_TIER = 15;
|
||||
|
||||
static const char SESSION_ID_PREFIX[] = "sid";
|
||||
static const char ATSC_KEY_SET_ID_PREFIX[] = "atscksid";
|
||||
static const char KEY_SET_ID_PREFIX[] = "ksid";
|
||||
static const char KEY_SYSTEM[] = "com.widevine";
|
||||
static const char ATSC_APP_PACKAGE_NAME[] = "org.atsc";
|
||||
constexpr char SESSION_ID_PREFIX[] = "sid";
|
||||
constexpr char ATSC_KEY_SET_ID_PREFIX[] = "atscksid";
|
||||
constexpr char KEY_SET_ID_PREFIX[] = "ksid";
|
||||
constexpr char KEY_SYSTEM[] = "com.widevine";
|
||||
constexpr char ATSC_APP_PACKAGE_NAME[] = "org.atsc";
|
||||
|
||||
// define query keys, values here
|
||||
// Define query keys, values here.
|
||||
// To expose these query items to Android update:
|
||||
// android/mediadrm/src/WVDrmPlugin.cpp
|
||||
// android/mediadrm/src_hidl/WVDrmPlugin.cpp
|
||||
// Update test QueryStatus and QueryStatusL3 test for all possible outputs:
|
||||
// android/cdm/test/request_license_test.cpp
|
||||
// Update HIDL debug output:
|
||||
// android/src_hidl/WVDrmFactory.cpp
|
||||
static const std::string QUERY_KEY_LICENSE_TYPE =
|
||||
"LicenseType"; // "Streaming", "Offline"
|
||||
static const std::string QUERY_KEY_PLAY_ALLOWED =
|
||||
@@ -61,6 +78,8 @@ static const std::string QUERY_KEY_LICENSE_DURATION_REMAINING =
|
||||
"LicenseDurationRemaining"; // non-negative integer denoting seconds
|
||||
static const std::string QUERY_KEY_PLAYBACK_DURATION_REMAINING =
|
||||
"PlaybackDurationRemaining"; // non-negative integer denoting seconds
|
||||
static const std::string QUERY_KEY_RENTAL_DURATION_REMAINING =
|
||||
"RentalDurationRemaining"; // non-negative integer denoting seconds
|
||||
static const std::string QUERY_KEY_RENEWAL_SERVER_URL =
|
||||
"RenewalServerUrl"; // url
|
||||
static const std::string QUERY_KEY_OEMCRYPTO_SESSION_ID =
|
||||
@@ -93,13 +112,21 @@ static const std::string QUERY_KEY_OEMCRYPTO_BUILD_INFORMATION =
|
||||
static const std::string QUERY_KEY_DECRYPT_HASH_SUPPORT = "DecryptHashSupport";
|
||||
static const std::string QUERY_KEY_PROVISIONING_MODEL = "ProvisioningModel";
|
||||
static const std::string QUERY_KEY_MAX_USAGE_TABLE_ENTRIES =
|
||||
"MaxNumberOfUsageTableEntries";
|
||||
"MaxUsageEntriesSupported";
|
||||
static const std::string QUERY_KEY_OEMCRYPTO_API_MINOR_VERSION =
|
||||
"OemCryptoApiMinorVersion";
|
||||
static const std::string QUERY_KEY_ANALOG_OUTPUT_CAPABILITIES =
|
||||
"AnalogOutputCapabilities";
|
||||
static const std::string QUERY_KEY_CAN_DISABLE_ANALOG_OUTPUT =
|
||||
"CanDisableAnalogOutput";
|
||||
static const std::string QUERY_KEY_WATERMARKING_SUPPORT = "WatermarkingSupport";
|
||||
static const std::string QUERY_KEY_PRODUCTION_READY = "ProductionReady";
|
||||
|
||||
static const std::string QUERY_VALUE_TRUE = "True";
|
||||
static const std::string QUERY_VALUE_FALSE = "False";
|
||||
static const std::string QUERY_VALUE_NONE = "None";
|
||||
static const std::string QUERY_VALUE_SUPPORTED = "Supported";
|
||||
static const std::string QUERY_VALUE_UNKNOWN = "Unknown";
|
||||
static const std::string QUERY_VALUE_STREAMING = "Streaming";
|
||||
static const std::string QUERY_VALUE_OFFLINE = "Offline";
|
||||
static const std::string QUERY_VALUE_SECURITY_LEVEL_L1 = "L1";
|
||||
@@ -118,6 +145,12 @@ static const std::string QUERY_VALUE_HDCP_LEVEL_UNKNOWN = "HDCP-LevelUnknown";
|
||||
static const std::string QUERY_VALUE_DRM_CERTIFICATE = "DrmCertificate";
|
||||
static const std::string QUERY_VALUE_KEYBOX = "Keybox";
|
||||
static const std::string QUERY_VALUE_OEM_CERTIFICATE = "OEMCertificate";
|
||||
static const std::string QUERY_VALUE_CGMS_A = "CGMS-A";
|
||||
static const std::string QUERY_VALUE_BOOT_CERTIFICATE_CHAIN =
|
||||
"BootCertificateChain";
|
||||
static const std::string QUERY_VALUE_NOT_SUPPORTED = "NotSupported";
|
||||
static const std::string QUERY_VALUE_CONFIGURABLE = "Configurable";
|
||||
static const std::string QUERY_VALUE_ALWAYS_ON = "AlwaysOn";
|
||||
|
||||
static const std::string ISO_BMFF_VIDEO_MIME_TYPE = "video/mp4";
|
||||
static const std::string ISO_BMFF_AUDIO_MIME_TYPE = "audio/mp4";
|
||||
@@ -137,13 +170,13 @@ static const std::string HLS_METHOD_SAMPLE_AES = "SAMPLE-AES";
|
||||
static const std::string HLS_IV_ATTRIBUTE = "IV";
|
||||
static const std::string HLS_URI_ATTRIBUTE = "URI";
|
||||
|
||||
static const char EMPTY_ORIGIN[] = "";
|
||||
static const char EMPTY_SPOID[] = "";
|
||||
constexpr char EMPTY_ORIGIN[] = "";
|
||||
constexpr char EMPTY_SPOID[] = "";
|
||||
|
||||
// Policy engine HDCP enforcement
|
||||
static const uint32_t HDCP_UNSPECIFIED_VIDEO_RESOLUTION = 0;
|
||||
static const int64_t HDCP_DEVICE_CHECK_INTERVAL = 10;
|
||||
static const char EMPTY_APP_PACKAGE_NAME[] = "";
|
||||
constexpr uint32_t HDCP_UNSPECIFIED_VIDEO_RESOLUTION = 0;
|
||||
constexpr int64_t HDCP_DEVICE_CHECK_INTERVAL = 10;
|
||||
constexpr char EMPTY_APP_PACKAGE_NAME[] = "";
|
||||
} // namespace wvcdm
|
||||
|
||||
#endif // WVCDM_CORE_WV_CDM_CONSTANTS_H_
|
||||
|
||||
Reference in New Issue
Block a user