diff options
author | Ruben Brunk <rubenbrunk@google.com> | 2015-01-09 17:19:45 -0800 |
---|---|---|
committer | Ruben Brunk <rubenbrunk@google.com> | 2015-01-09 17:19:45 -0800 |
commit | 8f8dc4882bc61b7e273ac991e2ae99834d55b7d0 (patch) | |
tree | 5b14f3a44d44e9ae1461c69234fd198a84cd0966 /core/jni | |
parent | f3ac99f2e093f851ca52bcd5aefb251046db10fa (diff) | |
parent | 0f647c19f970bfb14a48f6b014ea26ce57c224f4 (diff) | |
download | frameworks_base-8f8dc4882bc61b7e273ac991e2ae99834d55b7d0.zip frameworks_base-8f8dc4882bc61b7e273ac991e2ae99834d55b7d0.tar.gz frameworks_base-8f8dc4882bc61b7e273ac991e2ae99834d55b7d0.tar.bz2 |
resolve merge conflicts of 0f647c1 to lmp-mr1-dev-plus-aosp.
Change-Id: Idbf96ab23c02dc7c380d6c3a4a87b1f380446c61
Diffstat (limited to 'core/jni')
-rw-r--r-- | core/jni/android_hardware_camera2_DngCreator.cpp | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/core/jni/android_hardware_camera2_DngCreator.cpp b/core/jni/android_hardware_camera2_DngCreator.cpp index bb8de28..5548476 100644 --- a/core/jni/android_hardware_camera2_DngCreator.cpp +++ b/core/jni/android_hardware_camera2_DngCreator.cpp @@ -37,6 +37,17 @@ #include <img_utils/StripSource.h> #include "core_jni_helpers.h" +#include <utils/Log.h> +#include <utils/Errors.h> +#include <utils/StrongPointer.h> +#include <utils/RefBase.h> +#include <utils/Vector.h> +#include <cutils/properties.h> + +#include <string.h> +#include <inttypes.h> + +#include "android_runtime/AndroidRuntime.h" #include "android_runtime/android_hardware_camera2_CameraMetadata.h" #include <jni.h> @@ -360,15 +371,18 @@ ssize_t JniInputByteBuffer::read(uint8_t* buf, size_t offset, size_t count) { realCount = count; } - mEnv->CallObjectMethod(mInBuf, gInputByteBufferClassInfo.mGetMethod, mByteArray, 0, + jobject chainingBuf = mEnv->CallObjectMethod(mInBuf, gInputByteBufferClassInfo.mGetMethod, mByteArray, 0, realCount); + mEnv->DeleteLocalRef(chainingBuf); if (mEnv->ExceptionCheck()) { + ALOGE("%s: Exception while reading from input into byte buffer.", __FUNCTION__); return BAD_VALUE; } mEnv->GetByteArrayRegion(mByteArray, 0, realCount, reinterpret_cast<jbyte*>(buf + offset)); if (mEnv->ExceptionCheck()) { + ALOGE("%s: Exception while reading from byte buffer.", __FUNCTION__); return BAD_VALUE; } return realCount; @@ -468,15 +482,17 @@ status_t InputStripSource::writeToStream(Output& stream, uint32_t count) { for (uint32_t i = 0; i < mHeight; ++i) { size_t rowFillAmt = 0; - size_t rowSize = mPixStride; + size_t rowSize = mRowStride; while (rowFillAmt < mRowStride) { ssize_t bytesRead = mInput->read(rowBytes, rowFillAmt, rowSize); if (bytesRead <= 0) { if (bytesRead == NOT_ENOUGH_DATA || bytesRead == 0) { + ALOGE("%s: Early EOF on row %" PRIu32 ", received bytesRead %zd", + __FUNCTION__, i, bytesRead); jniThrowExceptionFmt(mEnv, "java/io/IOException", - "Early EOF encountered, not enough pixel data for image of size %u", - fullSize); + "Early EOF encountered, not enough pixel data for image of size %" + PRIu32, fullSize); bytesRead = NOT_ENOUGH_DATA; } else { if (!mEnv->ExceptionCheck()) { |