diff --git a/proprietary/drmwvmplugin/lib/libwvdrm.so b/proprietary/drmwvmplugin/lib/libwvdrm.so index 33efda67..784de9d2 100644 Binary files a/proprietary/drmwvmplugin/lib/libwvdrm.so and b/proprietary/drmwvmplugin/lib/libwvdrm.so differ diff --git a/proprietary/drmwvmplugin/src/WVMDrmPlugin.cpp b/proprietary/drmwvmplugin/src/WVMDrmPlugin.cpp index 5285b836..5fda8110 100644 --- a/proprietary/drmwvmplugin/src/WVMDrmPlugin.cpp +++ b/proprietary/drmwvmplugin/src/WVMDrmPlugin.cpp @@ -331,36 +331,39 @@ DrmConstraints* WVMDrmPlugin::onGetConstraints(int uniqueId, const String8* path bool denyHD; std::string assetPath(path->string()); - if (!mDrmPluginImpl->GetConstraints(assetPath, &timeSincePlayback, &timeRemaining, - &licenseDuration, lastError, allowOffline, - allowStreaming, denyHD)) - return NULL; + bool isValid = mDrmPluginImpl->GetConstraints(assetPath, &timeSincePlayback, &timeRemaining, + &licenseDuration, lastError, allowOffline, + allowStreaming, denyHD); DrmConstraints* drmConstraints = new DrmConstraints(); - char charValue[16]; // max uint32 = 0xffffffff + terminating char - memset(charValue, 0, 16); - sprintf(charValue, "%lu", (unsigned long)timeSincePlayback); - drmConstraints->put(&(DrmConstraints::LICENSE_START_TIME), charValue); - - memset(charValue, 0, 16); - sprintf(charValue, "%lu", (unsigned long)timeRemaining); - drmConstraints->put(&(DrmConstraints::LICENSE_EXPIRY_TIME), charValue); - - memset(charValue, 0, 16); - sprintf(charValue, "%lu", (unsigned long)licenseDuration); - drmConstraints->put(&(DrmConstraints::LICENSE_AVAILABLE_TIME), charValue); - - String8 key = String8("WVLicenseTypeKey"); - sprintf(charValue, "%u", (allowStreaming ? 1 : 0) | (allowOffline ? 2 : 0)); - drmConstraints->put(&key, charValue); - - key = String8("WVLicensedResolutionKey"); - sprintf(charValue, "%u", (denyHD ? 1 : 2)); - drmConstraints->put(&key, charValue); - - key = String8("WVLastErrorKey"); + String8 key = String8("WVLastErrorKey"); drmConstraints->put(&key, lastError.c_str()); + + if (isValid) { + char charValue[16]; // max uint32 = 0xffffffff + terminating char + + memset(charValue, 0, 16); + sprintf(charValue, "%lu", (unsigned long)timeSincePlayback); + drmConstraints->put(&(DrmConstraints::LICENSE_START_TIME), charValue); + + memset(charValue, 0, 16); + sprintf(charValue, "%lu", (unsigned long)timeRemaining); + drmConstraints->put(&(DrmConstraints::LICENSE_EXPIRY_TIME), charValue); + + memset(charValue, 0, 16); + sprintf(charValue, "%lu", (unsigned long)licenseDuration); + drmConstraints->put(&(DrmConstraints::LICENSE_AVAILABLE_TIME), charValue); + + key = String8("WVLicenseTypeKey"); + sprintf(charValue, "%u", (allowStreaming ? 1 : 0) | (allowOffline ? 2 : 0)); + drmConstraints->put(&key, charValue); + + key = String8("WVLicensedResolutionKey"); + sprintf(charValue, "%u", (denyHD ? 1 : 2)); + drmConstraints->put(&key, charValue); + } + return drmConstraints; } diff --git a/proprietary/streamcontrol/lib/libWVStreamControlAPI.so b/proprietary/streamcontrol/lib/libWVStreamControlAPI.so index ba344319..40df6be6 100644 Binary files a/proprietary/streamcontrol/lib/libWVStreamControlAPI.so and b/proprietary/streamcontrol/lib/libWVStreamControlAPI.so differ