Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4fd31a2a authored by Ronghua Wu's avatar Ronghua Wu
Browse files

media: Add reason to CodecException.

Bug: 19620911
Change-Id: Ic7244a2369a04bfd69e703415a8c9aacdcbf3c57
parent fff30439
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -15141,8 +15141,11 @@ package android.media {
  public static final class MediaCodec.CodecException extends java.lang.IllegalStateException {
    method public java.lang.String getDiagnosticInfo();
    method public int getReason();
    method public boolean isRecoverable();
    method public boolean isTransient();
    field public static final int REASON_HARDWARE = 0; // 0x0
    field public static final int REASON_RECLAIMED = 1; // 0x1
  }
  public static final class MediaCodec.CryptoException extends java.lang.RuntimeException {
+3 −0
Original line number Diff line number Diff line
@@ -16353,8 +16353,11 @@ package android.media {
  public static final class MediaCodec.CodecException extends java.lang.IllegalStateException {
    method public java.lang.String getDiagnosticInfo();
    method public int getReason();
    method public boolean isRecoverable();
    method public boolean isTransient();
    field public static final int REASON_HARDWARE = 0; // 0x0
    field public static final int REASON_RECLAIMED = 1; // 0x1
  }
  public static final class MediaCodec.CryptoException extends java.lang.RuntimeException {
+24 −0
Original line number Diff line number Diff line
@@ -687,6 +687,7 @@ final public class MediaCodec {
        CodecException(int errorCode, int actionCode, String detailMessage) {
            super(detailMessage);
            mErrorCode = errorCode;
            mReason = REASON_HARDWARE;
            mActionCode = actionCode;

            // TODO get this from codec
@@ -713,6 +714,15 @@ final public class MediaCodec {
            return mActionCode == ACTION_RECOVERABLE;
        }

        /**
         * Retrieve the reason associated with a CodecException.
         * The reason could be one of {@link #REASON_HARDWARE} or {@link #REASON_RECLAIMED}.
         *
         */
        public int getReason() {
            return mReason;
        }

        /**
         * Retrieve the error code associated with a CodecException.
         * This is opaque diagnostic information and may depend on
@@ -734,6 +744,19 @@ final public class MediaCodec {
            return mDiagnosticInfo;
        }

        /**
         * This indicates the exception is caused by the hardware.
         */
        public static final int REASON_HARDWARE = 0;

        /**
         * This indicates the exception is because the resource manager reclaimed
         * the media resource used by the codec.
         * <p>
         * With this exception, the codec must be released, as it has moved to terminal state.
         */
        public static final int REASON_RECLAIMED = 1;

        /* Must be in sync with android_media_MediaCodec.cpp */
        private final static int ACTION_FATAL = 0;
        private final static int ACTION_TRANSIENT = 1;
@@ -741,6 +764,7 @@ final public class MediaCodec {

        private final String mDiagnosticInfo;
        private final int mErrorCode;
        private final int mReason;
        private final int mActionCode;
    }