Merge "MediaCodec: revalidate cached queued input buffers if queue fails" into lmp-dev
diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java
index 5fb4f12..bf68921 100644
--- a/media/java/android/media/MediaCodec.java
+++ b/media/java/android/media/MediaCodec.java
@@ -827,8 +827,13 @@
             invalidateByteBuffer(mCachedInputBuffers, index);
             mDequeuedInputBuffers.remove(index);
         }
-        native_queueInputBuffer(
-                index, offset, size, presentationTimeUs, flags);
+        try {
+            native_queueInputBuffer(
+                    index, offset, size, presentationTimeUs, flags);
+        } catch (CryptoException e) {
+            validateInputByteBuffer(mCachedInputBuffers, index);
+            throw e;
+        }
     }
 
     private native final void native_queueInputBuffer(
@@ -947,8 +952,13 @@
             invalidateByteBuffer(mCachedInputBuffers, index);
             mDequeuedInputBuffers.remove(index);
         }
-        native_queueSecureInputBuffer(
-                index, offset, info, presentationTimeUs, flags);
+        try {
+            native_queueSecureInputBuffer(
+                    index, offset, info, presentationTimeUs, flags);
+        } catch (CryptoException e) {
+            validateInputByteBuffer(mCachedInputBuffers, index);
+            throw e;
+        }
     }
 
     private native final void native_queueSecureInputBuffer(