summaryrefslogtreecommitdiff
authorGuosong Zhou <guosong.zhou@amlogic.com>2015-09-18 09:42:25 (GMT)
committer Guosong Zhou <guosong.zhou@amlogic.com>2015-09-18 09:42:25 (GMT)
commit4b05c36b796013f0d5c1e5df694176294de2fb5a (patch)
tree31001d8360a3e5459d27e44dbed5d9dfd13d05c2
parent180e46fe538b9c908e331d1456645c0a333559c0 (diff)
downloadcamera-4b05c36b796013f0d5c1e5df694176294de2fb5a.zip
camera-4b05c36b796013f0d5c1e5df694176294de2fb5a.tar.gz
camera-4b05c36b796013f0d5c1e5df694176294de2fb5a.tar.bz2
PD#112647:fix continue picture crash
Change-Id: I36936d14c6fd74cbaf7c0ac3dae6b65851e0b4ee
Diffstat
-rw-r--r--v3/EmulatedFakeCamera3.cpp4
-rw-r--r--v3/EmulatedFakeCamera3.h2
-rw-r--r--[-rwxr-xr-x]v3/fake-pipeline2/Base.h2
-rw-r--r--v3/fake-pipeline2/JpegCompressor.cpp19
4 files changed, 6 insertions, 21 deletions
diff --git a/v3/EmulatedFakeCamera3.cpp b/v3/EmulatedFakeCamera3.cpp
index c9ca6c1..69fd2c5 100644
--- a/v3/EmulatedFakeCamera3.cpp
+++ b/v3/EmulatedFakeCamera3.cpp
@@ -1240,7 +1240,6 @@ status_t EmulatedFakeCamera3::processCaptureRequest(
nsecs_t frameDuration;
uint32_t sensitivity;
bool needJpeg = false;
- struct ExifInfo info;
ssize_t jpegbuffersize;
uint32_t jpegpixelfmt;
bool mHaveThumbnail = false;
@@ -1374,7 +1373,8 @@ status_t EmulatedFakeCamera3::processCaptureRequest(
info.has_altitude = false;
}
if (settings.exists(ANDROID_JPEG_GPS_PROCESSING_METHOD)) {
- info.gpsProcessingMethod = settings.find(ANDROID_JPEG_GPS_PROCESSING_METHOD).data.u8;
+ uint8_t * gpsString = settings.find(ANDROID_JPEG_GPS_PROCESSING_METHOD).data.u8;
+ memcpy(info.gpsProcessingMethod, gpsString , sizeof(info.gpsProcessingMethod)-1);
info.has_gpsProcessingMethod = true;
} else {
info.has_gpsProcessingMethod = false;
diff --git a/v3/EmulatedFakeCamera3.h b/v3/EmulatedFakeCamera3.h
index 4a23f26..b98beb8 100644
--- a/v3/EmulatedFakeCamera3.h
+++ b/v3/EmulatedFakeCamera3.h
@@ -242,6 +242,8 @@ private:
uint32_t mAvailableJpegSize[64 * 8];
+ struct ExifInfo info;
+
// All streams, including input stream
StreamList mStreams;
diff --git a/v3/fake-pipeline2/Base.h b/v3/fake-pipeline2/Base.h
index 1f27ca6..2437758 100755..100644
--- a/v3/fake-pipeline2/Base.h
+++ b/v3/fake-pipeline2/Base.h
@@ -69,7 +69,7 @@ struct ExifInfo {
double longitude;
double latitude;
double altitude;
- uint8_t *gpsProcessingMethod;
+ uint8_t gpsProcessingMethod[32];
bool has_longitude;
bool has_latitude;
bool has_altitude;
diff --git a/v3/fake-pipeline2/JpegCompressor.cpp b/v3/fake-pipeline2/JpegCompressor.cpp
index cae9f0d..4399d4d 100644
--- a/v3/fake-pipeline2/JpegCompressor.cpp
+++ b/v3/fake-pipeline2/JpegCompressor.cpp
@@ -801,24 +801,7 @@ ssize_t JpegCompressor::GetMaxJpegBufferSize()
}
void JpegCompressor::SetExifInfo(struct ExifInfo info)
{
- mInfo.mainwidth = info.mainwidth;
- mInfo.mainheight = info.mainheight;
- mInfo.thumbwidth = info.thumbwidth;
- mInfo.thumbheight = info.thumbheight;
- mInfo.gpsTimestamp = info.gpsTimestamp;
- mInfo.latitude = info.latitude;
- mInfo.longitude = info.longitude;
- mInfo.altitude = info.altitude;
- mInfo.gpsProcessingMethod = info.gpsProcessingMethod;
- mInfo.focallen = info.focallen;
- mInfo.orientation = info.orientation;
- mInfo.has_latitude = info.has_latitude;
- mInfo.has_longitude = info.has_longitude;
- mInfo.has_altitude = info.has_altitude;
- mInfo.has_gpsProcessingMethod = info.has_gpsProcessingMethod;
- mInfo.has_gpsTimestamp = info.has_gpsTimestamp;
- mInfo.has_focallen = info.has_focallen;
-
+ memcpy(&mInfo, &info, sizeof(struct ExifInfo));
}
int JpegCompressor::GenExif(ExifElementsTable* exiftable)
{