author | Guosong 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) |
commit | 4b05c36b796013f0d5c1e5df694176294de2fb5a (patch) | |
tree | 31001d8360a3e5459d27e44dbed5d9dfd13d05c2 | |
parent | 180e46fe538b9c908e331d1456645c0a333559c0 (diff) | |
download | camera-4b05c36b796013f0d5c1e5df694176294de2fb5a.zip camera-4b05c36b796013f0d5c1e5df694176294de2fb5a.tar.gz camera-4b05c36b796013f0d5c1e5df694176294de2fb5a.tar.bz2 |
PD#112647:fix continue picture crash
Change-Id: I36936d14c6fd74cbaf7c0ac3dae6b65851e0b4ee
-rw-r--r-- | v3/EmulatedFakeCamera3.cpp | 4 | ||||
-rw-r--r-- | v3/EmulatedFakeCamera3.h | 2 | ||||
-rw-r--r--[-rwxr-xr-x] | v3/fake-pipeline2/Base.h | 2 | ||||
-rw-r--r-- | v3/fake-pipeline2/JpegCompressor.cpp | 19 |
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) { |