Merge "MediaCodec: skip index validation at buffer validations" into tm-qpr-dev

This commit is contained in:
Wonsik Kim
2022-09-13 17:22:02 +00:00
committed by Android (Google) Code Review

View File

@@ -3835,11 +3835,10 @@ final public class MediaCodec {
private void invalidateByteBufferLocked(
@Nullable ByteBuffer[] buffers, int index, boolean input) {
if (buffers == null) {
if (index < 0) {
throw new IllegalStateException("index is negative (" + index + ")");
if (index >= 0) {
BitSet indices = input ? mValidInputIndices : mValidOutputIndices;
indices.clear(index);
}
BitSet indices = input ? mValidInputIndices : mValidOutputIndices;
indices.clear(index);
} else if (index >= 0 && index < buffers.length) {
ByteBuffer buffer = buffers[index];
if (buffer != null) {
@@ -3851,10 +3850,9 @@ final public class MediaCodec {
private void validateInputByteBufferLocked(
@Nullable ByteBuffer[] buffers, int index) {
if (buffers == null) {
if (index < 0) {
throw new IllegalStateException("index is negative (" + index + ")");
if (index >= 0) {
mValidInputIndices.set(index);
}
mValidInputIndices.set(index);
} else if (index >= 0 && index < buffers.length) {
ByteBuffer buffer = buffers[index];
if (buffer != null) {
@@ -3868,11 +3866,10 @@ final public class MediaCodec {
@Nullable ByteBuffer[] buffers, int index, boolean input) {
synchronized(mBufferLock) {
if (buffers == null) {
if (index < 0) {
throw new IllegalStateException("index is negative (" + index + ")");
if (index >= 0) {
BitSet indices = input ? mValidInputIndices : mValidOutputIndices;
indices.set(index);
}
BitSet indices = input ? mValidInputIndices : mValidOutputIndices;
indices.set(index);
} else if (index >= 0 && index < buffers.length) {
ByteBuffer buffer = buffers[index];
if (buffer != null) {
@@ -3885,10 +3882,9 @@ final public class MediaCodec {
private void validateOutputByteBufferLocked(
@Nullable ByteBuffer[] buffers, int index, @NonNull BufferInfo info) {
if (buffers == null) {
if (index < 0) {
throw new IllegalStateException("index is negative (" + index + ")");
if (index >= 0) {
mValidOutputIndices.set(index);
}
mValidOutputIndices.set(index);
} else if (index >= 0 && index < buffers.length) {
ByteBuffer buffer = buffers[index];
if (buffer != null) {