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(