summaryrefslogtreecommitdiffstats
path: root/jni
diff options
context:
space:
mode:
authorWei-Ta Chen <weita@google.com>2011-10-07 15:23:22 -0700
committerWei-Ta Chen <weita@google.com>2011-10-12 11:44:09 -0700
commit89b9c07b5bbcc2de25dd5f61c28de4575b4df996 (patch)
treecaaf5af8f63543acad764358347c6eddcafea3ce /jni
parent895573a418f0304e312ae9645a37f85d443bfa3a (diff)
downloadLegacyCamera-89b9c07b5bbcc2de25dd5f61c28de4575b4df996.zip
LegacyCamera-89b9c07b5bbcc2de25dd5f61c28de4575b4df996.tar.gz
LegacyCamera-89b9c07b5bbcc2de25dd5f61c28de4575b4df996.tar.bz2
Avoid a possible overflow on setting the mosaic size.
Log the size of the mosaic image before cropping, so as to help debug. Also, fix another issue that NV21 should be vertically subsmapled. Bug: 5412447 Change-Id: I20b0ef7fc1968517c63b7f599f04c8126adc0471
Diffstat (limited to 'jni')
-rw-r--r--jni/feature_mos/src/mosaic/Blend.cpp1
-rw-r--r--jni/feature_mos/src/mosaic/ImageUtils.cpp2
-rw-r--r--jni/feature_mos_jni.cpp2
3 files changed, 3 insertions, 2 deletions
diff --git a/jni/feature_mos/src/mosaic/Blend.cpp b/jni/feature_mos/src/mosaic/Blend.cpp
index e8b30f3..1f3d93c 100644
--- a/jni/feature_mos/src/mosaic/Blend.cpp
+++ b/jni/feature_mos/src/mosaic/Blend.cpp
@@ -236,6 +236,7 @@ int Blend::runBlend(MosaicFrame **oframes, MosaicFrame **rframes,
return BLEND_RET_ERROR;
}
+ LOGI("Allocate mosaic image for blending - size: %d x %d", Mwidth, Mheight);
YUVinfo *imgMos = YUVinfo::allocateImage(Mwidth, Mheight);
if (imgMos == NULL)
{
diff --git a/jni/feature_mos/src/mosaic/ImageUtils.cpp b/jni/feature_mos/src/mosaic/ImageUtils.cpp
index 2671dd4..6d0aac0 100644
--- a/jni/feature_mos/src/mosaic/ImageUtils.cpp
+++ b/jni/feature_mos/src/mosaic/ImageUtils.cpp
@@ -360,7 +360,7 @@ YUVinfo *YUVinfo::allocateImage(unsigned short width, unsigned short height)
heightUV = height;
// figure out how much space to hold all pixels...
- int size = (((width * height * 32) >> 3) + 8);
+ int size = ((width * height * 3) + 8);
unsigned char *position = 0;
// VC 8 does not like calling free on yuv->Y.ptr since it is in
diff --git a/jni/feature_mos_jni.cpp b/jni/feature_mos_jni.cpp
index e3fdea5..e40b75a 100644
--- a/jni/feature_mos_jni.cpp
+++ b/jni/feature_mos_jni.cpp
@@ -628,7 +628,7 @@ JNIEXPORT jbyteArray JNICALL Java_com_android_camera_panorama_Mosaic_getFinalMos
// Convert YVU to NV21 format in-place
ImageType V = resultYVU+mosaicWidth*mosaicHeight;
ImageType U = V+mosaicWidth*mosaicHeight;
- for(int j=0; j<mosaicHeight; j++)
+ for(int j=0; j<mosaicHeight/2; j++)
{
for(int i=0; i<mosaicWidth; i+=2)
{