summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drm/mediadrm/plugins/clearkey/hidl/DrmPlugin.cpp15
-rw-r--r--drm/mediadrm/plugins/clearkey/hidl/include/ClearKeyDrmProperties.h1
2 files changed, 15 insertions, 1 deletions
diff --git a/drm/mediadrm/plugins/clearkey/hidl/DrmPlugin.cpp b/drm/mediadrm/plugins/clearkey/hidl/DrmPlugin.cpp
index badb99e402..d7dacb8a68 100644
--- a/drm/mediadrm/plugins/clearkey/hidl/DrmPlugin.cpp
+++ b/drm/mediadrm/plugins/clearkey/hidl/DrmPlugin.cpp
@@ -527,6 +527,10 @@ Return<Status> DrmPlugin::setPropertyString(
mMockError = Status_V1_2::ERROR_DRM_SESSION_LOST_STATE;
} else if (value == kFrameTooLargeValue) {
mMockError = Status_V1_2::ERROR_DRM_FRAME_TOO_LARGE;
+ } else if (value == kInvalidStateValue) {
+ mMockError = Status_V1_2::ERROR_DRM_INVALID_STATE;
+ } else {
+ mMockError = Status_V1_2::ERROR_DRM_UNKNOWN;
}
}
@@ -683,6 +687,10 @@ Return<void> DrmPlugin::getMetrics(getMetrics_cb _hidl_cb) {
Return<void> DrmPlugin::getOfflineLicenseKeySetIds(getOfflineLicenseKeySetIds_cb _hidl_cb) {
std::vector<std::string> licenseNames = mFileHandle.ListLicenses();
std::vector<KeySetId> keySetIds;
+ if (mMockError != Status_V1_2::OK) {
+ _hidl_cb(toStatus_1_0(mMockError), keySetIds);
+ return Void();
+ }
for (const auto& name : licenseNames) {
std::vector<uint8_t> keySetId(name.begin(), name.end());
keySetIds.push_back(keySetId);
@@ -693,6 +701,9 @@ Return<void> DrmPlugin::getOfflineLicenseKeySetIds(getOfflineLicenseKeySetIds_cb
Return<Status> DrmPlugin::removeOfflineLicense(const KeySetId& keySetId) {
+ if (mMockError != Status_V1_2::OK) {
+ return toStatus_1_0(mMockError);
+ }
std::string licenseName(keySetId.begin(), keySetId.end());
if (mFileHandle.DeleteLicense(licenseName)) {
return Status::OK;
@@ -706,7 +717,9 @@ Return<void> DrmPlugin::getOfflineLicenseState(const KeySetId& keySetId,
DeviceFiles::LicenseState state;
std::string license;
OfflineLicenseState hLicenseState;
- if (mFileHandle.RetrieveLicense(licenseName, &state, &license)) {
+ if (mMockError != Status_V1_2::OK) {
+ _hidl_cb(toStatus_1_0(mMockError), OfflineLicenseState::UNKNOWN);
+ } else if (mFileHandle.RetrieveLicense(licenseName, &state, &license)) {
switch (state) {
case DeviceFiles::kLicenseStateActive:
hLicenseState = OfflineLicenseState::USABLE;
diff --git a/drm/mediadrm/plugins/clearkey/hidl/include/ClearKeyDrmProperties.h b/drm/mediadrm/plugins/clearkey/hidl/include/ClearKeyDrmProperties.h
index 1bbc822fbf..b83ce69d4e 100644
--- a/drm/mediadrm/plugins/clearkey/hidl/include/ClearKeyDrmProperties.h
+++ b/drm/mediadrm/plugins/clearkey/hidl/include/ClearKeyDrmProperties.h
@@ -40,6 +40,7 @@ static const std::string kDrmErrorTestValue("");
static const std::string kResourceContentionValue("resourceContention");
static const std::string kLostStateValue("lostState");
static const std::string kFrameTooLargeValue("frameTooLarge");
+static const std::string kInvalidStateValue("invalidState");
static const std::string kDeviceIdKey("deviceId");
static const uint8_t kTestDeviceIdData[] =