am bb909347: am 07ed0359: hardware: samsung_slsi: libcamera2: Fix EXIF GPS Processing Method
* commit 'bb9093477c6395107fd1482a6a83dcecf71a5b3c':
hardware: samsung_slsi: libcamera2: Fix EXIF GPS Processing Method
diff --git a/libcamera2/ExynosCameraHWInterface2.cpp b/libcamera2/ExynosCameraHWInterface2.cpp
index 73061d8..12dba05 100644
--- a/libcamera2/ExynosCameraHWInterface2.cpp
+++ b/libcamera2/ExynosCameraHWInterface2.cpp
@@ -5928,6 +5928,7 @@
snprintf((char*)exifInfo->gps_datestamp, sizeof(exifInfo->gps_datestamp),
"%04d:%02d:%02d", tm_data.tm_year + 1900, tm_data.tm_mon + 1, tm_data.tm_mday);
+ memset(exifInfo->gps_processing_method, 0, 100);
memcpy(exifInfo->gps_processing_method, currentEntry->gpsProcessingMethod, 32);
exifInfo->enableGps = true;
} else {
diff --git a/libcamera2/MetadataConverter.cpp b/libcamera2/MetadataConverter.cpp
index 07e08bf..11d1b3a 100644
--- a/libcamera2/MetadataConverter.cpp
+++ b/libcamera2/MetadataConverter.cpp
@@ -78,6 +78,7 @@
uint32_t num_entry = 0;
uint32_t index = 0;
uint32_t i = 0;
+ uint32_t cnt = 0;
camera_metadata_entry_t curr_entry;
struct camera2_shot * dst = NULL;
@@ -92,7 +93,7 @@
dst->ctl.aa.aeTargetFpsRange[1] = 30;
dst->ctl.aa.aeExpCompensation = 5;
- num_entry = (uint32_t)get_camera_metadata_data_count(request);
+ num_entry = (uint32_t)get_camera_metadata_entry_count(request);
for (index = 0 ; index < num_entry ; index++) {
if (get_camera_metadata_entry(request, index, &curr_entry)==0) {
@@ -205,9 +206,13 @@
break;
case ANDROID_JPEG_GPS_PROCESSING_METHOD:
- if (NO_ERROR != CheckEntryTypeMismatch(&curr_entry, TYPE_BYTE, 32))
+ if (NO_ERROR != CheckEntryTypeMismatch(&curr_entry, TYPE_BYTE))
break;
- for (i=0 ; i<curr_entry.count ; i++)
+ if (curr_entry.count > 32)
+ cnt = 32;
+ else
+ cnt = curr_entry.count;
+ for (i = 0 ; i < cnt ; i++)
dst_ext->gpsProcessingMethod[i] = curr_entry.data.u8[i];
break;