summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Chen <raychen@google.com>2010-03-10 14:59:44 -0800
committerRay Chen <raychen@google.com>2010-03-24 14:57:03 -0700
commit8d61723fea0a5cdcd08e34325123fbd3e0bd41ae (patch)
tree15780780892392eb85be5471e3e3fbd8f8f5a9aa
parent6b7eabd0019e37134e6cb525359d33b3529bcec9 (diff)
downloadjhead-tools_r7.tar.gz
Change-Id: Ia5ef0df9627504d8d0a165c74264448b59e499fc
-rw-r--r--gpsinfo.c5
-rw-r--r--main.c24
2 files changed, 17 insertions, 12 deletions
diff --git a/gpsinfo.c b/gpsinfo.c
index 8508ef0..a0ebaea 100644
--- a/gpsinfo.c
+++ b/gpsinfo.c
@@ -140,9 +140,6 @@ void ProcessGpsInfo(unsigned char * DirStart, int ByteCountUnused, unsigned char
strcpy(ImageInfo.GpsLat, "? ?");
strcpy(ImageInfo.GpsLong, "? ?");
ImageInfo.GpsAlt[0] = 0;
- memset(ImageInfo.GpsTimeStamp, 0, sizeof(ImageInfo.GpsTimeStamp));
- memset(ImageInfo.GpsDateStamp, 0, sizeof(ImageInfo.GpsDateStamp));
- memset(ImageInfo.GpsProcessingMethod, 0, sizeof(ImageInfo.GpsProcessingMethod));
for (de=0;de<NumDirEntries;de++){
unsigned Tag, Format, Components;
@@ -271,7 +268,7 @@ void ProcessGpsInfo(unsigned char * DirStart, int ByteCountUnused, unsigned char
break;
case TAG_GPS_PROCESSING_METHOD:
- if (ByteCount > EXIF_ASCII_PREFIX_LEN &&
+ if (ByteCount > EXIF_ASCII_PREFIX_LEN &&
memcmp(ValuePtr, ExifAsciiPrefix, EXIF_ASCII_PREFIX_LEN) == 0) {
int length =
ByteCount < GPS_PROCESSING_METHOD_LEN + EXIF_ASCII_PREFIX_LEN ?
diff --git a/main.c b/main.c
index 110a5ed..1b1eabd 100644
--- a/main.c
+++ b/main.c
@@ -646,14 +646,22 @@ static jstring getAttributes(JNIEnv *env, jobject jobj, jstring jfilename)
}
if (ImageInfo.GpsInfoPresent) {
- bufLen = addKeyValueString(&buf, bufLen, "GPSLatitude", ImageInfo.GpsLatRaw);
- if (bufLen == 0) return NULL;
- bufLen = addKeyValueString(&buf, bufLen, "GPSLatitudeRef", ImageInfo.GpsLatRef);
- if (bufLen == 0) return NULL;
- bufLen = addKeyValueString(&buf, bufLen, "GPSLongitude", ImageInfo.GpsLongRaw);
- if (bufLen == 0) return NULL;
- bufLen = addKeyValueString(&buf, bufLen, "GPSLongitudeRef", ImageInfo.GpsLongRef);
- if (bufLen == 0) return NULL;
+ if (ImageInfo.GpsLatRaw[0]) {
+ bufLen = addKeyValueString(&buf, bufLen, "GPSLatitude", ImageInfo.GpsLatRaw);
+ if (bufLen == 0) return NULL;
+ }
+ if (ImageInfo.GpsLatRef[0]) {
+ bufLen = addKeyValueString(&buf, bufLen, "GPSLatitudeRef", ImageInfo.GpsLatRef);
+ if (bufLen == 0) return NULL;
+ }
+ if (ImageInfo.GpsLongRaw[0]) {
+ bufLen = addKeyValueString(&buf, bufLen, "GPSLongitude", ImageInfo.GpsLongRaw);
+ if (bufLen == 0) return NULL;
+ }
+ if (ImageInfo.GpsLongRef[0]) {
+ bufLen = addKeyValueString(&buf, bufLen, "GPSLongitudeRef", ImageInfo.GpsLongRef);
+ if (bufLen == 0) return NULL;
+ }
if (ImageInfo.GpsAlt[0]) {
bufLen = addKeyValueString(&buf, bufLen, "GPSAltitude", ImageInfo.GpsAlt);
if (bufLen == 0) return NULL;