From d7e5f680fa64b76c3d1c2a67572896705a0588ed Mon Sep 17 00:00:00 2001 From: Lajos Molnar Date: Tue, 9 Sep 2014 16:17:02 -0700 Subject: [PATCH] MediaCodec/Drm: move from getErrorCode to getDiagnosticInfo Bug: 17059255 Change-Id: I9f5f0be61e94795d90ad29e94b3a1a6e6aedfb1d --- api/current.txt | 4 ++-- media/java/android/media/MediaCodec.java | 18 ++++++++++++++++++ media/java/android/media/MediaDrm.java | 19 +++++++++++++++++++ 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/api/current.txt b/api/current.txt index ba8551a2330b0..8a04e4ac91885 100644 --- a/api/current.txt +++ b/api/current.txt @@ -14664,7 +14664,7 @@ package android.media { } public static final class MediaCodec.CodecException extends java.lang.IllegalStateException { - method public int getErrorCode(); + method public java.lang.String getDiagnosticInfo(); method public boolean isRecoverable(); method public boolean isTransient(); } @@ -15002,7 +15002,7 @@ package android.media { public static final class MediaDrm.MediaDrmStateException extends java.lang.IllegalStateException { ctor public MediaDrm.MediaDrmStateException(int, java.lang.String); - method public int getErrorCode(); + method public java.lang.String getDiagnosticInfo(); } public static abstract interface MediaDrm.OnEventListener { diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java index 81ebb14d6e489..1c7c9ea8c4b50 100644 --- a/media/java/android/media/MediaCodec.java +++ b/media/java/android/media/MediaCodec.java @@ -672,6 +672,11 @@ final public class MediaCodec { super(detailMessage); mErrorCode = errorCode; mActionCode = actionCode; + + // TODO get this from codec + final String sign = errorCode < 0 ? "neg_" : ""; + mDiagnosticInfo = + "android.media.MediaCodec.error_" + sign + Math.abs(errorCode); } /** @@ -696,15 +701,28 @@ final public class MediaCodec { * Retrieve the error code associated with a CodecException. * This is opaque diagnostic information and may depend on * hardware or API level. + * + * @hide */ public int getErrorCode() { return mErrorCode; } + /** + * Retrieve a human readable diagnostic information string + * associated with the exception. DO NOT SHOW THIS TO END-USERS! + * This string will not be localized or generally comprehensible + * to end-users. + */ + public String getDiagnosticInfo() { + return mDiagnosticInfo; + } + /* Must be in sync with android_media_MediaCodec.cpp */ private final static int ACTION_TRANSIENT = 1; private final static int ACTION_RECOVERABLE = 2; + private final String mDiagnosticInfo; private final int mErrorCode; private final int mActionCode; } diff --git a/media/java/android/media/MediaDrm.java b/media/java/android/media/MediaDrm.java index ca707d87460da..1490732f5f603 100644 --- a/media/java/android/media/MediaDrm.java +++ b/media/java/android/media/MediaDrm.java @@ -188,18 +188,37 @@ public final class MediaDrm { */ public static final class MediaDrmStateException extends java.lang.IllegalStateException { private final int mErrorCode; + private final String mDiagnosticInfo; public MediaDrmStateException(int errorCode, String detailMessage) { super(detailMessage); mErrorCode = errorCode; + + // TODO get this from DRM session + final String sign = errorCode < 0 ? "neg_" : ""; + mDiagnosticInfo = + "android.media.MediaDrm.error_" + sign + Math.abs(errorCode); + } /** * Retrieve the associated error code + * + * @hide */ public int getErrorCode() { return mErrorCode; } + + /** + * Retrieve a human readable diagnostic information string + * associated with the exception. DO NOT SHOW THIS TO END-USERS! + * This string will not be localized or generally comprehensible + * to end-users. + */ + public String getDiagnosticInfo() { + return mDiagnosticInfo; + } } /**