diff options
author | Zhijun He <zhijunhe@google.com> | 2014-07-25 09:06:11 -0700 |
---|---|---|
committer | Zhijun He <zhijunhe@google.com> | 2014-07-28 18:42:10 +0000 |
commit | 4c4064fa66f551f49b7e1017b1ebe65a05f9df21 (patch) | |
tree | 186dcb938887a03315257f6cfdeb99873a5f0f77 /media | |
parent | 39c12fab49075b715c253c68c84b5c10c3150197 (diff) | |
download | frameworks_base-4c4064fa66f551f49b7e1017b1ebe65a05f9df21.zip frameworks_base-4c4064fa66f551f49b7e1017b1ebe65a05f9df21.tar.gz frameworks_base-4c4064fa66f551f49b7e1017b1ebe65a05f9df21.tar.bz2 |
ImageFormat: update raw10 spec to allow row padding
Change-Id: Id191b92037487f16538d111fc6171d3be9a02acf
Diffstat (limited to 'media')
-rw-r--r-- | media/jni/android_media_ImageReader.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/media/jni/android_media_ImageReader.cpp b/media/jni/android_media_ImageReader.cpp index 35317e1..fa4439d 100644 --- a/media/jni/android_media_ImageReader.cpp +++ b/media/jni/android_media_ImageReader.cpp @@ -420,8 +420,11 @@ static void Image_getLockedBufferInfo(JNIEnv* env, CpuConsumer::LockedBuffer* bu "Width is not multiple of 4 %d", buffer->width); LOG_ALWAYS_FATAL_IF(buffer->height % 2, "Height is not even %d", buffer->height); + LOG_ALWAYS_FATAL_IF(buffer->stride < (buffer->width * 10 / 8), + "stride (%d) should be at least %d", + buffer->stride, buffer->width * 10 / 8); pData = buffer->data; - dataSize = buffer->width * buffer->height * 10 / 8; + dataSize = buffer->stride * buffer->height; break; case HAL_PIXEL_FORMAT_RGBA_8888: case HAL_PIXEL_FORMAT_RGBX_8888: @@ -535,12 +538,15 @@ static jint Image_imageGetRowStride(JNIEnv* env, CpuConsumer::LockedBuffer* buff rowStride = (idx == 0) ? buffer->stride : ALIGN(buffer->stride / 2, 16); break; case HAL_PIXEL_FORMAT_BLOB: - case HAL_PIXEL_FORMAT_RAW10: // Blob is used for JPEG data, RAW10 is used for 10-bit raw data, they are // single plane, row and pixel strides are 0. ALOG_ASSERT(idx == 0, "Wrong index: %d", idx); rowStride = 0; break; + case HAL_PIXEL_FORMAT_RAW10: + ALOG_ASSERT(idx == 0, "Wrong index: %d", idx); + rowStride = buffer->stride; + break; case HAL_PIXEL_FORMAT_Y8: ALOG_ASSERT(idx == 0, "Wrong index: %d", idx); LOG_ALWAYS_FATAL_IF(buffer->stride % 16, |