summaryrefslogtreecommitdiff
path: root/media/java/android/media/MediaCodec.java
diff options
context:
space:
mode:
authorWonsik Kim <wonsik@google.com>2020-04-21 17:00:13 -0700
committerWonsik Kim <wonsik@google.com>2020-04-21 17:00:13 -0700
commitb8ebdb38cb8f5d140eef987139cd5f0ee02576db (patch)
tree59db4c8f86c8b31af1e19acceb262ef958bea0c0 /media/java/android/media/MediaCodec.java
parent78cf5a5ebce6663e092a57bfc97a2dc73078eb22 (diff)
media: fix MediaCodec operations using HardwareBuffer
Bug: 154111004 Bug: 154108503 Test: atest CtsMediaTestCases:MediaCodecBlockModelTest Change-Id: Ia2891f2fde5bc48055c093d450ca3ee2cc62f30d
Diffstat (limited to 'media/java/android/media/MediaCodec.java')
-rw-r--r--media/java/android/media/MediaCodec.java12
1 files changed, 10 insertions, 2 deletions
diff --git a/media/java/android/media/MediaCodec.java b/media/java/android/media/MediaCodec.java
index 1d70a0dbc57c..d6496c0b3e02 100644
--- a/media/java/android/media/MediaCodec.java
+++ b/media/java/android/media/MediaCodec.java
@@ -4848,8 +4848,13 @@ final public class MediaCodec {
}
public MediaImage(
- @NonNull Image.Plane[] planes, int width, int height, int format, boolean readOnly,
+ @NonNull ByteBuffer[] buffers, int[] rowStrides, int[] pixelStrides,
+ int width, int height, int format, boolean readOnly,
long timestamp, int xOffset, int yOffset, @Nullable Rect cropRect, long context) {
+ if (buffers.length != rowStrides.length || buffers.length != pixelStrides.length) {
+ throw new IllegalArgumentException(
+ "buffers, rowStrides and pixelStrides should have the same length");
+ }
mWidth = width;
mHeight = height;
mFormat = format;
@@ -4858,7 +4863,10 @@ final public class MediaCodec {
mIsReadOnly = readOnly;
mBuffer = null;
mInfo = null;
- mPlanes = planes;
+ mPlanes = new MediaPlane[buffers.length];
+ for (int i = 0; i < buffers.length; ++i) {
+ mPlanes[i] = new MediaPlane(buffers[i], rowStrides[i], pixelStrides[i]);
+ }
// save offsets and info
mXOffset = xOffset;