summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jeff Tinker <jtinker@google.com> 2015-11-09 17:31:05 -0800
committer Jeff Tinker <jtinker@google.com> 2015-11-09 17:31:05 -0800
commit3ccb34d7070d73ba6c7842801b070b41de32b842 (patch)
tree62e4f29c38a61efad41d2a41a89c2c744452601e
parent0c55387059eec19d4069e70d2e66050dd10617c3 (diff)
Improve MediaCodec.CryptoException log messages
The message being logged is "Unknown error" even for known error types. This change provides more descriptive error strings, for the case when the message isn't explicitly provided by the DRM plugin. Change-Id: Ic86478d7685cd33e21ecd2f875ef7dbed351e52e related-to-bug: 25477595
-rw-r--r--media/jni/android_media_MediaCodec.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/media/jni/android_media_MediaCodec.cpp b/media/jni/android_media_MediaCodec.cpp
index e8f680f6a36c..49b579ce438d 100644
--- a/media/jni/android_media_MediaCodec.cpp
+++ b/media/jni/android_media_MediaCodec.cpp
@@ -834,29 +834,36 @@ static void throwCryptoException(JNIEnv *env, status_t err, const char *msg) {
env->GetMethodID(clazz.get(), "<init>", "(ILjava/lang/String;)V");
CHECK(constructID != NULL);
- jstring msgObj = env->NewStringUTF(msg != NULL ? msg : "Unknown Error");
+ const char *defaultMsg = "Unknown Error";
/* translate OS errors to Java API CryptoException errorCodes (which are positive) */
switch (err) {
case ERROR_DRM_NO_LICENSE:
err = gCryptoErrorCodes.cryptoErrorNoKey;
+ defaultMsg = "Crypto key not available";
break;
case ERROR_DRM_LICENSE_EXPIRED:
err = gCryptoErrorCodes.cryptoErrorKeyExpired;
+ defaultMsg = "License expired";
break;
case ERROR_DRM_RESOURCE_BUSY:
err = gCryptoErrorCodes.cryptoErrorResourceBusy;
+ defaultMsg = "Resource busy or unavailable";
break;
case ERROR_DRM_INSUFFICIENT_OUTPUT_PROTECTION:
err = gCryptoErrorCodes.cryptoErrorInsufficientOutputProtection;
+ defaultMsg = "Required output protections are not active";
break;
case ERROR_DRM_SESSION_NOT_OPENED:
err = gCryptoErrorCodes.cryptoErrorSessionNotOpened;
+ defaultMsg = "Attempted to use a closed session";
break;
default: /* Other negative DRM error codes go out as is. */
break;
}
+ jstring msgObj = env->NewStringUTF(msg != NULL ? msg : defaultMsg);
+
jthrowable exception =
(jthrowable)env->NewObject(clazz.get(), constructID, err, msgObj);